のための次の実行時間を計算し、私は仕事のために次のようなデータ構造を持っている:タスク
Task{
Start: 17:00:00
End: 20:00:00
Interval: 5
Days: [1, 2, 3, 6, 7]
}
だから、これはいくつかのタスクのスケジュール設定のようなものです。私は5秒ごとに目を向けるWindowsサービスを持っていて、タスクを実行する時間があればいくつかの計算を行います。それを確認するのはとても簡単です。たとえば、現在の時刻がStart
とEnd
の間である場合、現在の時刻がDays
の配列であるかどうかをチェックしています。このタスクは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
など