Feiertagsberechnung

Hallo zusammen,
ich schreibe gerade einen kleinen Sketch der die Zirkulationspumpe einer Heizung steuern soll.

Eine schöne Routine für die Sommerzeitumstellung hat ja jurs gepostet.
Ich habe aber nirgendwo eine Routine für die Feiertagsberechnung finden können.

Also habe ich mich selbst daran versucht.

Das Ergebnis anbei.
Vielleicht kann das ja der eine oder andere gebrauchen.
Die Routine boolean feiertag() gibt für Feiertage ein True zurück, sonst eben False. So kann man testen ob gerade ein Feiertag ist.

Vermutlich kann man da viel optimieren, aber ich bitte um Nachsicht, ich beschäftige mich noch nicht so lange mit der Arduino Programmierung.

Achja, der 24.12 und 31.12 werden hier als Feiertag gewertet, obwohl das nicht ganz richtig ist.
Für meine Pumpensteuerung ist das aber so sinnvoll. Wer das nicht mag, kann die entsprechenden Einträge ja rauswerfen.

Das Beispielprogramm verwendet die Time-Lib und die Ethernet-Lib. Die Zeit wird per NTP von einem Server geholt.
Aber das kann sich ja jeder auf seine Bedürfnisse anpassen.

Falls sich jemand die Mühe macht das zu optimieren, wäre ich für ein entprechendes Posting hier dankbar (dient dann einem Lerneffekt für mich).

feiertagsberechnung.ino (7.83 KB)

Ich nehme mal an, daß Du die Feiertage für Deutschland meinst. Da ich kein deutscher Bundesbürger bin, mal eine blöde Frage: Gibt es nicht einige Feiertage die vom Bundesland abhängig sind? Was machst Du wenn ein Feiertag auf einen Sonntag fällt?

Grüße Uwe

Hallo Uwe,
ja, es sind die deutschen Feiertage.
Und ja, es gibt Feiertage die nicht in ganz Deutschland gelten, sondern nur in einzelnen Bundesländern
Der Sketch gilt für Bayern, Baden Württemberg, Hessen, Nordrhein-Westfalen, Rheinland-Pfalz und das Saarland.

Es gibt da noch Allerheiligen (1.11.) in Rheinland-Pfalz, Saarland und Nordrhein-Westfalen), den Buß- und Bettag in Sachsen (immer der vorletzte Mittwoch vor dem 1. Advent),
Mariä Himmelfahrt (15.8) im Saarland.
Dann ist da noch der Reformationstag (31.10.) in Brandenburg, Mecklenburg-Vorpommern, Sachsen und Sachsen-Anhalt.

Der Sketch kann bzw. muss für an die eigenen Erfordernisse angepasst werden.
Lediglich für den Buß- und Bettag ist da noch etwas Kopfarbeit fällig.

Ob ein Feiertag auf einen Sonntag fällt ist mir egal.
Die Routine gibt ein True zurück, wenn es ein Feiertag ist (egal ob Sonntag oder Werktag).
Wenn man das unterscheiden will, muss die aufrufende Routine das eben überprüfen.
Für meine Pumpensteuerung wird der Sonntag und der Feiertag gleich behandelt.

Ich hatte mich gewundert, dass es noch keinen Feiertagssketch gab, deshalb habe ich meinen Sketch gepostet.

Vielleicht baue ich den Buß-und Bettag noch ein

LG

Hallo zusammen,
ich habe den Sketch auf weitere Feiertage erweitert (Heilige Drei Könige, Reformationstag, Mariä Himmelfahrt, Allerheiligen und Buß- und Bettag)
Die Anpassung an das eigene Bundesland erfolgt durch auskommentieren der entsprechenden Einträge.

feiertagsberechnung.ino (8.93 KB)

Hallo zusammen,
bedauerlicherweise hatte sich in meinem Sketch ein Fehler eingeschlichen.
Anbei die korrigierte Version.

feiertagsberechnung.ino (9.03 KB)