Struppi: Bundeseinheitlicher Feiertag ???

Beitrag lesen

Hallo Raphael

Hallo,
ich könnte ein Perl-Skript gebrauchen, welches anhand des aktuellen Datums bestimmen kann, ob es sich dabei um einen bundeseinheitlichen Feiertag handelt oder nicht.

Hat jemand so etwas ?

Ich hab ein Kalender modul in dem sowas drin ist, ich verusch das mal rauszuschreiben, weiß aber nicht ob das so alleine funktioniert, wenn ja, gib es den Namen des Feiertages zurück:

sub feiertag()
{
my $d = shift; # Tag
my $m = shift; # Monat
my $y = shift; # Jahr
my $t = shift || time; # timestamp

my %feiertage = (
 # bewegliche Feiertage
 'Rosenmontag' => -48,
 'Karfreitag' => -2,
 'Ostersonntag' => 0,
 'Ostermontag' => 1,
 'Christi Himmelfahrt' => 39,
 'Pfingstsonntag' => 49,
 'Pfingstmontag' => 50,
 'Fronleichnam' => 60,

# Feste Feiertage

'Neujahr' => { 1 => 1},
 '1. Mai' => { 1 => 5},
 'Nie wieder Deutschland' => { 3 => 10},
 'Allerheiligen' => { 1=> 11},
 'Heiligabend' => { 24 => 12},
 '1.Weihnachtsfeiertag' => { 25 => 12},
 '2.Weihnachtsfeiertag' => { 26 => 12},
 'Sylvester' => { 31 => 12},
);

my($day, $month, $year) = (localtime($t))[3..5];
$year += 1900 if $year < 1900;

my $date = Date::Gregorian->new->set_ymd($day, $month, $year);
my $easter = $date->set_easter($year)->new;

my $compare = Date::Gregorian->new()->set_ymd($y, $m, $d)->get_gmtime();

while( my ($n, $r) = each %feiertage)
{
if(ref $r eq 'HASH')
{

Feste Feiertage

my( $d1, $m1) = %$r;
return $n if $d1 == $d && $m1 == $m;
}
else
{

bewegliche

my $tmp = $self->{easter}->new->add_days($r)->get_gmtime();
return $n if $compare == $tmp;
}
}
return;
}

Struppi.