Feiertage eines beliebigen Jahres errechnen mit Perl
Hier mal etwas aus der Praxis:
Jeder kommt ja mal an den Punkt, an dem er einen Kalender verarbeiten muß. Natürlich wäre es wünschenswert, wenn nicht nur die Tage den Wochentagen zugewiesen werden, sondern wenn auch bekannt wäre, ob ein Tag ein Feiertag ist.
Ich habe da schon vor Jahren einmal ein Script geschrieben, das diese Arbeit erledigt. Aus aktuellem Anlaß hab ich es mal aktualisiert und umgeschrieben.
Hintergrund
Interessanterweise richten sich alle religiösen Feiertage nach Ostersonntag, so ist Pfingsten immer 49 Tage nach Ostersonntag, Rosenmontag ist immer 48 Tage vor Ostersonntag.
Und selbst das ist nur die halbe Wahrheit: Ostersonntag ist immer so und soviel Tage nach dem ersten Neumond des Jahres, aber so ganz krieg ich das jetzt auch nicht mehr auf die Reihe. Am Besten mal danach googeln.
Die Einbindung erfolgt per:
require 'feiertage.pl'; my %f=&feiertage(2007,"Bayern"); foreach(keys %f){print "$_ $f{$_}\n";}
Sie sehen vielleicht den Zusatz "Bayern", dadurch werden die bayerischen Feiertage mit dazugenommen. Ohne diesen Zusatz sind nur die gesetzlichen deutschen Feiertage im Ergebnis enthalten.
Falls sich jemand die Arbeit machen will, Feiertage Sachsens oder Österreichs oder sonstwas einfügen zu wollen, kann er das ja an der entsprechenden Stelle tun. Sieht man schon im Quelltext. Regionen werden immer getrennt durch Leerzeichen!
Die drei Skripte (t.pl, feiertage.pl und timelocal.pl) sind unter http://www.hidemail.de/blog/feiertage.zip zum Download bereitgestellt. Viel Spaß damit! download
Eine etwas "aufgeborte" Version des Feiertags-Kalenders gibts hier: Jahreskalender mit Feiertagen von 1970 - 2028