Sql 有趣的逻辑,以日期减去日期,并获得diffdate vb.net
好的,我想不出用vb.net实现这一点的算法 这是3个变量Sql 有趣的逻辑,以日期减去日期,并获得diffdate vb.net,sql,vb.net,math,logic,Sql,Vb.net,Math,Logic,好的,我想不出用vb.net实现这一点的算法 这是3个变量 Dim DateFrom as date = '01/09/2015' Dim DateNow as date = Date.Now Dim Holiday() as date '' <-- List of holiday dates Dim DateFrom as date='01/09/2015' Dim DateNow as date=date.Now Dim Holiday()作为日期“”那么您想确定两个日期之间的工
Dim DateFrom as date = '01/09/2015'
Dim DateNow as date = Date.Now
Dim Holiday() as date '' <-- List of holiday dates
Dim DateFrom as date='01/09/2015'
Dim DateNow as date=date.Now
Dim Holiday()作为日期“”那么您想确定两个日期之间的工作日数
您可以使用以下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()
我想你可以用这样的方法来解决这个问题:
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)
谢谢你。我通常不使用linq,但谢谢:)谢谢我想这正是我想要的:D谢谢。事实上,vb.net上不存在datediff,但nvrm我为它创建了一个函数。哈哈,不,它存在:。您需要Microsoft.VisualBasic名称空间,该名称空间通常作为默认名称添加到新项目中。如果您对Microsoft.VisualBasic名称空间有任何问题,请检查此链接。VisualBasic名称空间:ty tezzo!这真的很有帮助。