VB.NET - 计算两个日期之间的日期与排除

Isu*_*uru 2 vb.net days

我想计算两个日期之间的日子,不包括星期六星期日.到目前为止,我已经编写了这段代码

Dim startDay As Integer
Dim endDay As Integer
Dim days As Integer
Dim count As Integer

startDay = dtpStartDate.Value.DayOfWeek
endDay = dtpEndDate.Value.DayOfWeek

For days = startDay To endDay
    If days = 0 Or days = 6 Then           'Sunday = 0, Saturday = 6
        count += 1
    End If
Next

    lblNoOfDays.Text = count
Run Code Online (Sandbox Code Playgroud)

如果您在同一周内选择两个日期,它可以正常工作.(例如:1月23日至1月27日,给出结果5)但是如果我将它们设置为不同周的日期,(例如:1月23日至1月30日,给出结果1),则结果不正确.

我知道这是因为循环,但我想不出办法克服这个问题.任何人都可以给我一个建议,解决方案?

谢谢

Den*_*aub 7

Dim count = 0
Dim totalDays = (dtpEndDate - dtpStartDate).Days

For i = 0 To totalDays
    Dim weekday As DayOfWeek = startDate.AddDays(i).DayOfWeek
    If weekday <> DayOfWeek.Saturday AndAlso weekday <> DayOfWeek.Sunday Then
        count += 1
    End If
Next

lblNoOfDays.Text = count
Run Code Online (Sandbox Code Playgroud)