Ich habe einen crontab-ähnlichen Scheduler. Zeitdefinition "MM HH WD MD M":
MM-Minuten
HH-Stunden
WD- Wochentage
MD - Tage des Monats
M - Monate
WD, MD und M erlauben mehrere Einträge und jeder der Parameter kann null sein, zum Beispiel:
Das Problem besteht darin, wie die nächste Laufzeit berechnet wird, wenn Sie das letzte Ausführungsdatum kennen. Ich weiß, wie man das mit einer Schleife macht (füge einfach 1 Minute hinzu, bis es der Bedingung entspricht), aber es muss einen besseren Weg geben.
Sie können das entweder selbst programmieren, indem Sie DateTime und TimeSpan - zum Beispiel:
%Vor%überprüft, ob es momentan 15:35 ist (und somit eine Ausführung stattfinden muss), ähnliche Prüfungen können für den Wochentag, den Tag des Monats usw. implementiert werden.
oder verwenden Sie eine wirklich nette Open Source .NET-Bibliothek namens NodaTime (ist definitiv ein besserer Weg).
Eine andere Option ist die Verwendung einer anderen Architektur - für solche schedulerartigen Apps / Dienste gibt es eine Open Source-Bibliothek namens Quartz ( ist noch besser), was unter diesen Berechnungen viele andere sehr nützliche Dinge in diesem Zusammenhang macht.