16,719
社区成员
发帖
与我相关
我的任务
分享
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim dt1 As New DateTime(2010, 4, 12)
Dim dt2 As New DateTime(2010, 4, 19)
Dim days As Integer
While (dt2 - dt1).Days > 1 '去除头尾,所以>1
dt1 = dt1.AddDays(1)
If dt1.DayOfWeek = DayOfWeek.Saturday Or dt1.DayOfWeek = DayOfWeek.Sunday Then Continue While
days += 1
End While
'如果你要算上开始那天和结束的日子,就+2
days += 2
MessageBox.Show(days)
End Sub
Private Sub Form3_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Click
Dim T1 As Date = CDate("2010-1-1")
Dim T2 As Date = CDate("2010-1-30")
Dim Count As Integer = 0
While T1 <= T2
If Not (T1.DayOfWeek = DayOfWeek.Saturday OrElse T1.DayOfWeek = DayOfWeek.Sunday) Then
Count += 1
End If
T1 = T1.AddDays(1)
End While
Me.Text = Count
End Sub
Private Sub Form3_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Click
Dim T1 As Date = CDate("2010-4-7")
Dim T2 As Date = CDate("2010-4-30")
Dim Count As Integer = 1
While T1 <= T2
If T1.DayOfWeek <> DayOfWeek.Thursday AndAlso T1.DayOfWeek <> DayOfWeek.Sunday Then
Count += 1
End If
T1 = T1.AddDays(1)
End While
Me.Text = Count
End Sub
Private Sub Form3_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Click
Dim T1 As Date = CDate("2010-1-1")
Dim T2 As Date = CDate("2010-1-7")
Dim Count As Integer = 0
Dim a As Boolean = True
While a = True
T1 = T1.AddDays(1)
If T1 < T2 Then
If T1.DayOfWeek <> DayOfWeek.Wednesday OrElse T1.DayOfWeek <> DayOfWeek.Sunday Then
Count += 1
End If
Else
a = False
End If
End While
Me.Text = Count
End Sub
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim dt1 As DateTime = Me.DateTimePicker1.Value
Dim dt2 As DateTime = Me.DateTimePicker2.Value
Dim t As Integer = DateTime.Compare(dt1, dt2)
Dim days As Integer = 0
If t < 0 Then
days = GetDays(dt1, dt2)
Else
days = GetDays(dt2, dt1)
End If
End Sub
Function GetDays(ByVal d1 As DateTime, ByVal d2 As DateTime) As Integer
Dim dt As DateTime = d1
Dim i As Integer = 0
While dt.DayOfYear <> d2.DayOfYear
dt = dt.AddDays(1)
If dt.DayOfWeek = DayOfWeek.Saturday Or dt.DayOfWeek = DayOfWeek.Sunday Then
Continue While
Else
i += 1
End If
End While
Return i
End Function
End Class
Dim days As Long
Dim ts As System.TimeSpan = Me.DateTimePicker2.Value - Me.DateTimePicker1.Value
Dim startWeekDay As Integer = Weekday(Me.DateTimePicker1.Value) - 1
Dim endWeekDay As Integer = (startWeekDay + ts.Days Mod 6) Mod 6
If endWeekDay = 0 Then endWeekDay = 6
Dim subDays As Integer = 0
If startWeekDay >= 6 Then '6,7本来就要休息
subDays = 8 - startWeekDay
End If
If endWeekDay = 6 Then
subDays += 1
ElseIf endWeekDay = 7 Then
subDays += 2
End If
If ts.Days > ts.Days / 7 * 2 - subDays Then days = ts.Days - ts.Days / 7 * 2 - subDays
MessageBox.Show(days)