Home|Personal|
Tutorials|Scripts|Stupid Tools

yaos°

 

»

Feiertage in PHP

 
 

<?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(000$month$day$year);
  }
  function 
getHolidays($year) {
    
$time $this->getEasterSundayTime($year);
    
$days["neujahr"] = mktime(00011$year);
    
$days["hl. 3 könige"] = mktime(00016$year);
    
$days["aschermittwoch"] = $time-(86400*46)+3600;
    
$days["karfreitag"] = $time-(86400*2);
    
$days["ostersonntag"] = $time;
    
$days["Tag der Arbeit"] = mktime(00051$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(000103$year);
    
$days["Allerheiligen"] = mktime(000111$year);
    
$days["1. Weihnachtsfeiertag"] = mktime(0001225$year);
    
$days["2. Weihnachtsfeiertag"] = mktime(0001226$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

 

Valid HTML 4.01! Valid CSS!