Ostern gehört zu den beweglichen Feier- und Ferientagen. Pfingsten oder auch Fasching lassen sich anhand des Osterdatums errechnen. Für die Berechnung des Ostersonntag gilt Folgendes:
Ostersonntag ist am ersten Sonntag nach dem ersten Vollmond im Frühling.
Carl Friedrich Gauß hat dies mathematisch mit folgender Formel ausgedrückt: e = (2 * (J mod 4) + 4 * (J mod 7) + 6 * D + (6 + J/100 – J/400 – 2) mod 7) mod 7
Falls d = 29, dann ist D = 28
Falls d = 28 und J mod 17 >= 11, dann ist D = 27
Falls d weder 28 noch 29 ist: dann ist D = d
d = ((15 + J/100 – J/400 – (8 * J/100 + 13) / 25) mod 30 + 19 * (J mod 19)) mod 30
In PHP könnte eine Funktion zur Berechnung des Datums folgendermaßen aussehen:
<?php function ostersonntag($j, $t, $m) { // Berechnung von klein d $d = ((15 + floor($j/100) - floor($j/400) - floor((8 * floor($j/100) + 13) / 25)) % 30 + 19 * ($j % 19)) % 30; // Berechnung von groß D if ($d==29)$D = 28; else if ($d == 28 && $j%17 >= 11) $D = 27; else $D = $d; // Berechnung von klein e $e = (2 * ($j%4) + 4 * ($j%7) + 6 * $D + (6 + floor($j/100) - floor($j/400) - 2) % 7) % 7; // Berechnung von Tag und Monat // Rückgabe der Werte per Referenz $m = "03"; $t = 21 + $e + $D + 1; if ($t > 31) { $m = "04"; $t = $t - 31; } if($t < 10) $t = "0" . $t; } ?>
Zur Berechnung des Ostersonntages gibt es in PHP direkt eine Funktion namens easter_date():
http://php.net/manual/de/function.easter-date.php