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.