diff --git a/autoActions/autoaction_runner.py b/autoActions/autoaction_runner.py index 015d62d..bf44a77 100644 --- a/autoActions/autoaction_runner.py +++ b/autoActions/autoaction_runner.py @@ -380,10 +380,17 @@ def uhrzeit_erfuellt(typ, op, soll, jetzt, fenster): soll_d = als_datum(soll) if soll_d is None: return False - ist_d = jetzt.date() - if op == "=": return ist_d == soll_d - if op == "<": return ist_d < soll_d - return ist_d >= soll_d + # Nur Monat und Tag zaehlen, das Jahr der Eingabe wird ignoriert - + # eine Datumsbedingung soll sich jaehrlich wiederholen, ohne dass sie + # jedes Jahr von Hand nachgezogen werden muss. Der Vergleich zweier + # (Monat, Tag)-Paare ordnet sich wie das Kalenderjahr selbst; nur ein + # Fenster, das über den Jahreswechsel reicht, laesst sich damit nicht + # in einer einzigen Bedingung ausdruecken (siehe doku/automatiken.md). + ist_mt = (jetzt.month, jetzt.day) + soll_mt = (soll_d.month, soll_d.day) + if op == "=": return ist_mt == soll_mt + if op == "<": return ist_mt < soll_mt + return ist_mt >= soll_mt jetzt_m, soll_m = jetzt.hour * 60 + jetzt.minute, minuten(soll) if op == "=": return im_nachholfenster(jetzt_m, soll_m, fenster)