Calculate holidays

 

#!/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";
}
}

Joomla SEF URLs by Artio
Aktuelles

Shopware für Ihr Business

Für unsere E-Commerce Projekte verwenden wir ab sofort Shopware, damit Ihr Business erfolgreicher wird.

Shop-Erstellung, Artikelimport und Individualprogrammierung