#!/bin/blog

November 13, 2003

Datumsberechnung in Perl II

Filed under: Internet, Notizen, perl — Tags: — martin @ 6:52 pm

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.

Advertisements

Leave a Comment »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Blog at WordPress.com.

%d bloggers like this: