Dim d1 As Date = #04/09/2022 10:00# '开始时间
Dim hs As Double = 39 '计划耗时
Dim d11 As Date = New Date(d1.year, d1.month, d1.day, 8, 0, 0)
Dim d12 As Date = New Date(d1.year, d1.month, d1.day, 12, 0, 0)
Dim d21 As Date = New Date(d1.year, d1.month, d1.day, 13, 30, 0)
Dim d22 As Date = New Date(d1.year, d1.month, d1.day, 19, 30, 0)
Dim hh As Double
Dim d As Date = d1
If d <= d11 Then
hh = 10
ElseIf d > d11 And d < d12 Then
hh = (d12 - d).TotalHours + 6
ElseIf d > d12 And d < d21 Then
hh = 6
ElseIf d > d21 And d < d22 Then
hh = (d22 - d).TotalHours
End If
Output.Show("hh=" & hh)
d = d11
Do While hh < hs
Dim c As Double = hs - hh
Output.Show("c=" & c)
If c > 10 Then
hh += 10
d = d.adddays(1)
If d.DayOfWeek = 0 Then d = d.adddays(1)
Output.Show("hh3=" & hh)
Output.Show("d=" & d)
Else
hh += c
Output.Show("c < 10")
d = d.AddHours(c)
Output.Show("hh4=" & hh)
Output.Show("d2=" & d)
Exit Do
End If
Loop
d = d.adddays(1)
MsgBox("计划完成时间=" & d)