| |
<?php
// ======================================================= //
// TagSpielereien - Kleine Klasse fuer Feiertage etc. //
// //
// ein kleines Beispiel fuer die Berechnung und fuer OOP //
// //
// written by Henrik Teichmann <t@yaos.de> & <www.yaos.de> //
// //
// Die Berechnung des Ostersonntags basiert auf der //
// Formel von C.F. Gauss, der PHP Code dafuer ist schamlos //
// von www.virtuelle-maschine.de abgeguckt, danke dafuer! //
// Keep on the good work! //
// //
// ======================================================= //
setlocale(LC_TIME, "de_DE");
class TagSpielereien {
function getEasterSundayTime($year) {
$p = floor($year/100);
$r = floor($year/400);
$o = floor(($p*8+13)/25)-2;
$w = (19*($year%19)+(13+$p-$r-$o)%30)%30;
$e = ($w==29?28:$w);
if ($w==28&&($year%19)>10) $e=27;
$day = (2*($year%4)+4*($year%7)+6*$e+(4+$p-$r)%7)%7+22+$e;
$month = ($day>31?4:3);
if ($day>31) $day-=31;
return mktime(0, 0, 0, $month, $day, $year);
}
function getHolidays($year) {
$time = $this->getEasterSundayTime($year);
$days["neujahr"] = mktime(0, 0, 0, 1, 1, $year);
$days["hl. 3 könige"] = mktime(0, 0, 0, 1, 6, $year);
$days["aschermittwoch"] = $time-(86400*46)+3600;
$days["karfreitag"] = $time-(86400*2);
$days["ostersonntag"] = $time;
$days["Tag der Arbeit"] = mktime(0, 0, 0, 5, 1, $year);
$days["Christ Himmelfahrt"] = $time+(86400*39);
$days["Pfingstsonntag"] = $time+(86400*49);
$days["Pfingstmontag"] = $time+(86400*50);
$days["Fronleichnam"] = $time+(86400*60);
$days["Tag der deutschen Einheit"] = mktime(0, 0, 0, 10, 3, $year);
$days["Allerheiligen"] = mktime(0, 0, 0, 11, 1, $year);
$days["1. Weihnachtsfeiertag"] = mktime(0, 0, 0, 12, 25, $year);
$days["2. Weihnachtsfeiertag"] = mktime(0, 0, 0, 12, 26, $year);
return $days;
}
}
if(!isset($year) || empty($year)) {
$year = date('Y');
}
$tag = new TagSpielereien();
$days = $tag->getHolidays($year);
?>
<pre>
<?php while(list($key, $value) = each($days)) { ?>
<?php echo $key."\t\t"; echo date('d.m.Y G:i:s', $value); ?><br>
<?php }?>
</pre>
© Henrik Teichmann
|
|