【问题标题】:Fun Logic to minus date with date and get the diffdate vb.net有趣的逻辑用日期减去日期并获得 diffdate vb.net
【发布时间】:2015-10-08 09:05:21
【问题描述】:

好的,我想不出使用 vb.net 的算法。

所以这里是 3 变量

Dim DateFrom as date = '01/09/2015'

Dim DateNow as date = Date.Now

Dim Holiday() as date '' <-- List of holiday dates

所以我想要做的是我想从 DateFrom 和 DateNow 中获取“日”差异日期,并排除 Holiday() 数组中的减去日期以及星期六星期日。

假设我的 DateFrom 是 '01/09/2015',即星期二,而我的 DateNow 是 '09/09/2015',也是星期二,在 Holiday() 数组中有 '4/09/2015' Fridaydiffdate 的输出假设是自以来的第 5 天DateNow ---Difference Day 减去 Holiday() 数组,还减去周六和周日 -- DateFrom)

我挠了挠头大约 152.5 次,但仍然找不到这样做的方法。

【问题讨论】:

    标签: sql vb.net math logic


    【解决方案1】:

    我认为您可以使用以下方法解决此问题:

    Dim intTotalDays As Integer = 0
    
    Dim dtStartDate As New DateTime(2015, 10, 1)
    Dim dtEndDate As New DateTime(2015, 10, 31)
    
    Dim Holidays As DateTime() = {
        New DateTime(2015, 10, 15),
        New DateTime(2015, 10, 17)
    }
    
    For i As Integer = 0 To DateDiff(DateInterval.Day, dtStartDate, dtEndDate)
    
        Dim dtDay As DateTime = DateAdd(DateInterval.Day, i, dtStartDate)
    
        If Not dtDay.DayOfWeek = DayOfWeek.Saturday And Not dtDay.DayOfWeek = DayOfWeek.Sunday And Not Holidays.Contains(dtDay) Then
            intTotalDays += 1
        End If
    
    Next i
    
    MsgBox(intTotalDays)
    

    【讨论】:

    【解决方案2】:

    所以你想确定两个日期之间的工作日数?

    您可以使用以下 LINQ 查询:

    Dim DateFrom As Date = #9/1/2015#
    Dim Holiday() As Date = {#9/4/2015#}
    Dim Weekend() As DayOfWeek = {DayOfWeek.Saturday, DayOfWeek.Sunday}
    
    Dim days As Int32 = (Date.Today - DateFrom).Days + 1 '+ 1 to include end day '
    Dim workingDaysBetween =
        From d In Enumerable.Range(0, days)
        Let day = DateFrom.AddDays(d)
        Where Not Weekend.Contains(day.DayOfWeek) AndAlso Not Holiday.Contains(day)
    
    Dim countDays As Int32 = workingDaysBetween.Count()
    

    【讨论】:

    • 谢谢你。我通常不使用 linq 但谢谢 :))
    猜你喜欢
    • 2012-08-21
    • 2019-04-24
    • 1970-01-01
    • 1970-01-01
    • 2018-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多