Wenn man sich näher an die Frage der Datumsberechnung heranwagt (siehe auch meinen früheren sehr einfach gestrickten Beitrag zum Thema) merkt man, daß man sich auf einem gut erforschten, aber nicht gerade leicht verdaulichen Gebiet bewegt.
Ursprünglich habe ich nur mit Date::Business Berechnungen unter Berücksichtigung von Wochenenden angestellt.
#!/usr/bin/perl -w
use strict;
use Date::Business;
my $start = "20031113"; # Donnerstag
my $tage = 3;
# $tage Werktage zum Datum $start addieren.
my $date = new Date::Business(DATE => $start);
$date->addb($tage);
my $ende = $date->image();
print "$start + $tage Werktage = $ende\n";
Später wurde dann der Wunsch wach, auch Feiertage berücksichtigen zu können. Dabei rankt sich alles um Weihnachten und Ostersonntag. Ausgehend von letzterem werden die meisten christlichen Feiertage auf recht einfache Weise berechnet. Leicht gesagt, denn dummerweise ist eben die Methode zur Berechnung des Ostersonntag nicht gerade selbsterklärend. 😉
Weitere Links zur Datumsberechung:
– Das Perl-Modul Date::Calc
– Datumsberechnung bei I-Netlab (deutsch) – Ostern, Schaltjahre, Kalenderwochen
Damit läßt sich gut leben, für das konkrete Projekt habe ich die Berechnung aller Feiertage allerdings zunächst auf die lange Bank geschoben.
Update: Es gibt einen neueren Eintrag Datumsberechnung in Perl III zu diesem Thema.
Leave a Reply