|
Â
#!/usr/bin/perl -w # This programm calcs german holidays # While today is neither a holyday nor Saturday or Sunday # it returns false, otherwise true
use Date::Calc qw(Easter_Sunday Add_Delta_Days) ; $jahr = `date +%Y`; chop($jahr); sub holiday { $addsub = shift(@_); ($year,$month,$day) = Add_Delta_Days(Easter_Sunday($jahr), $addsub); if (length($month) == 1) { $month = "0$month"; } if (length($day) == 1) { $day = "0$day"; } my $date = "$year$month$day"; return $date; } $wd = `date +%w`; chop($wd); if ($wd !~ /0|6/) { $neujahr =       ($jahr . "0101"); $karfreitag =       holiday(-2); $ostersonntag =      holiday(0); $ostermontag =      holiday(1); $tagderarbeit =    ($jahr . "0501"); $vatertag =       holiday(39); $pfingstsonntag =   holiday(49); $pfingstmontag =    holiday(50); $fronleichnam =    holiday(60); $nationalfeiertag = ($jahr . "1003"); $allerheiligen =    ($jahr . "1101"); $xmas =         ($jahr . "1224"); $ersterxmas =       ($jahr . "1225"); $zweiterxmas =      ($jahr . "1226"); $sylvester =       ($jahr . "1231"); $date = `date "+%Y%m%d"`; #$date = "20030420"; # Test some date chomp ($date); if ($date !~ /($neujahr|$karfreitag|$ostersonntag|$ostermontag|$tagderarbeit|$vatertag|$pfingstsonntag|$pfingstmontag|$fronleichnam|$nationalfeiertag|$allerheiligen|$xmas|$ersterxmas|$zweiterxmas|$sylvester)/) { print "false"; } else { print "true"; } }
|