0
我有任務的以下數據結構:計算下一運行時間任務
Task{
Start: 17:00:00
End: 20:00:00
Interval: 5
Days: [1, 2, 3, 6, 7]
}
所以這有點像一個時間表設置一些任務。我有一個windows服務,每5秒鐘進行一次滴答,如果是時候運行任務,它會進行一些計算。這很容易檢查。例如,我正在檢查當前時間的當天是否在Days
陣列中,如果當前時間在Start
和End
之間等。因此,此任務將在17:05:04
,17:10:01
等(接近5秒)執行。所以它現在的時間接近17:00 + N*5 seconds
它執行一些代碼。這是正常工作。
我現在正努力研究計算未來這項任務的執行時間。例如,如果現在是Monday 16:58:30
,則下次它將被執行時是Monday 17:05
。如果是Friday 18:00
它將在Saturday 17:05
執行。如果是Monday 18:33
,則下一次運行是Monday 18:35
。困難來當你意識到,開始可以是這樣的開始:17:03:00
等運行時間現在這支17:08
,17:13
等