====== PHP: Osterdatum berechnen ====== Falls die Funktion ''easter_date()'' mal nicht zur Verfügung steht, lässt sich der Ostersonntag auch so ermitteln: if (!function_exists('easter_date')) { /* Quelle: http://www.stadtaus.com/tutorials/ostern_berechnen.php */ function easter_date($injahr) { $a = $injahr % 19; # $b = $injahr % 4; $c = $injahr % 7; $m = number_format(8 * number_format($injahr / 100) + 13) / 25 - 2; $s = number_format($injahr / 100 ) - number_format($injahr / 400) - 2; $M = (15 + $s - $m) % 30; $N = (6 + $s) % 7; $d = ($M + 19 * $a) % 30; if ($d == 29) { $D = 28; } // if ($d == 29) elseif ($d == 28 and $a >= 11) { $D = 27; } // elseif ($d == 28 and $a >= 11) else { $D = $d; } // else: if ($d == 29) $e = (2 * ($injahr % 4) + 4 * ($injahr % 7) + 6 * $D + $N) % 7; $ostersonntag = mktime (0, 0, 0, 3, 21, $injahr) + (($D + $e + 1) * 86400); return $ostersonntag; } // function easter_date } // if (!function...) Davon abhängig lassen sich dann noch weitere Daten berechnen: $ostersonntag = easter_date( date('Y') ); $rosenmontag = $ostersonntag - (48 * 86400); $aschermittwoch = $ostersonntag - (46 * 86400); $ostermontag = $ostersonntag + 86400 ; $himmelfahrt = $ostersonntag + (39 * 86400); $pfingstsonntag = $ostersonntag + (49 * 86400); $pfingsmontag = $ostersonntag + (50 * 86400); $fronleichnam = $ostersonntag + (60 * 86400); $herzjesufreitag = $ostersonntag + (68 * 86400); Und dann gibt es ja noch die Feiertage, die von Weihnachten abhängen... function advent1($injahr) { $myhilf = mktime(0, 0, 0, 11, 27, $injahr); while (date("w", $myhilf) != 0) { $myhilf += 86400; } // while (date("w", $myhilf) != 0) $advent1 = $myhilf; // der Sonntag nach dem 26.11. return $advent1; } // function advent1 Davon hängt dann ab (neben den drei anderen Adventen ;-)) $ersterAdvent = advent1( date("Y") ); $bussundbettag = $ersteradvent - (11 * 86400); Das reicht bestimmt als Inspiration :-)