Dim D1 As Date = CDate("#1/6/2557 08:00#")
tmpInput = 1440
If tmpInput > 480 Then
MsgBox(CStr(DateAdd(DateInterval.Minute, tmpInput + 960, D1)))
ElseIf tmpInput <= 240 Then
MsgBox(CStr(DateAdd(DateInterval.Minute, tmpInput, D1)))
ElseIf tmpInput > 240 Or tmpInput <= 480 Then
MsgBox(CStr(DateAdd(DateInterval.Minute, tmpInput + 60, D1)))
End If
คือมันต้อง If ไปเรื่อยๆ อะครับ ถ้าสามสิบวัน ก็ต้อง if แล้ว + เวลาเพิ่มไปอีกสามสิบครั้ง
ถ้าเดือนถัดไป 31 วันก็ต้อง if เข้าไปอีก
line1:
Select Case tmpInput
Case 1 To 240
MsgBox(CStr(DateAdd(DateInterval.Minute, tmpInput, D1)))
Case 241 To 480
MsgBox(CStr(DateAdd(DateInterval.Minute, tmpInput + 60, D1)))
Case Is > 480
D1 = (CDate(DateAdd(DateInterval.Day, +1, D1)))
tmpInput = tmpInput - 480
GoTo line1
Case 0
MsgBox("end")
End Select
Dim dStart As DateTime = DateTime.Parse("0001-01-01 08:00:00 AM")
Dim dEnd As DateTime = DateTime.Parse("0001-01-04 17:00:00 PM")
Dim Period1 As Integer = 0 'Minutes
Dim Period2 As Integer = 0 'Minutes
While dStart < dEnd
'If dStart.DayOfWeek <> DayOfWeek.Saturday AndAlso dStart.DayOfWeek <> DayOfWeek.Sunday Then
If dStart.TimeOfDay.Hours >= 8 AndAlso dStart.TimeOfDay.Hours <= 12 Then
Period1 += 1
Else
If dStart.TimeOfDay.Hours >= 13 AndAlso dStart.TimeOfDay.Hours <= 17 Then
Period2 += 1
End If
End If
'End If
dStart = dStart.AddMinutes(1)
End While