comp:osterdat
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
comp:osterdat [2009-09-23 1330] – angelegt werner | comp:osterdat [2022-11-24 0149] (aktuell) – oster- und pfingstmontag werner | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== PHP: Osterdatum berechnen ====== | ||
+ | Falls die Funktion '' | ||
+ | |||
+ | <code php> | ||
+ | if (!function_exists(' | ||
+ | /* Quelle: http:// | ||
+ | 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: | ||
+ | |||
+ | <code php> | ||
+ | $ostersonntag | ||
+ | $rosenmontag | ||
+ | $aschermittwoch | ||
+ | $ostermontag | ||
+ | $himmelfahrt | ||
+ | $pfingstsonntag | ||
+ | $pfingsmontag | ||
+ | $fronleichnam | ||
+ | $herzjesufreitag = $ostersonntag + (68 * 86400); | ||
+ | </ | ||
+ | |||
+ | Und dann gibt es ja noch die Feiertage, die von Weihnachten abhängen... | ||
+ | |||
+ | <code php> | ||
+ | function advent1($injahr) | ||
+ | { | ||
+ | $myhilf = mktime(0, 0, 0, 11, 27, $injahr); | ||
+ | while (date(" | ||
+ | $myhilf += 86400; | ||
+ | } // while (date(" | ||
+ | $advent1 = $myhilf; | ||
+ | // der Sonntag nach dem 26.11. | ||
+ | return $advent1; | ||
+ | } // function advent1 | ||
+ | </ | ||
+ | |||
+ | Davon hängt dann ab (neben den drei anderen Adventen ;-)) | ||
+ | |||
+ | <code php> | ||
+ | $ersterAdvent | ||
+ | $bussundbettag = $ersteradvent - (11 * 86400); | ||
+ | </ | ||
+ | |||
+ | Das reicht bestimmt als Inspiration :-) |