Und dann war da noch: Ostern
Kommentare

Zack – und schon ist wieder Ostern. Vier Tage in der Sonne faulenzen, Jagd auf kleine Häschen machen (Schokoladenhasen – nicht, dass wir uns falsch verstehen!) und wie jedes Jahr beobachten,

Zack – und schon ist wieder Ostern. Vier Tage in der Sonne faulenzen, Jagd auf kleine Häschen machen (Schokoladenhasen – nicht, dass wir uns falsch verstehen!) und wie jedes Jahr beobachten, wie in Foren rund um den Globus nach der Osterformel in PHP gesucht wird. Das PHP Magazin, Fachblatt für Freizeitbeschäftigung und Häschen-Wilderei, hilft aus!

Easter Bunny

Es gilt: $OG sei das Märzdatum des Ostervollmonds, $SZ das Datum des ersten Sonntags im März und $OS der Ostersonntag (der allerdings ein Märzdatum ist, der 32. März ist demnach der 1. April). Unter diesen Voraussetzungen ergibt sich dann das Folgende:

<?PHP  

function eastern($year){ 
     
    $X = $year; 
    $K = floor ( $X / 100 );  
    $M = 15 + floor ( ( ( 3 * $K ) + 3 ) / 4 ) -  
            floor ( ( ( 8 * $K ) + 13 ) / 25 );  
    $S = 2 - floor ( ( ( 3 * $K ) + 3 ) / 4 );  
    $A = $X % 19;  
    $D = ( 19 * $A + $M ) % 30;  
    $R = floor ( $D / 29 ) + ( floor ( $D / 28 ) -  
            floor ( $D / 29 ) ) * floor ( $A / 11 );  

    $OG = 21 + $D - $R; 
    $SZ = 7 - ( ( $X + floor ( $X / 4 ) + $S ) % 7 ); 
    $OE = 7 - ( ( $OG - $SZ ) %7 );  
    $OS = $OG + $OE;  

    return $OS; 
     
} 

?>  

Dabei handelt es sich übrigens um die modifizierte Form der Gaußschen Osterformel von Dr. Lichtenberg; das Original war nämlich aufgrund irgendwelcher Ausnahmen die wir gerade aus Vorfreude auf die kommenden vier Tage nicht nachvollziehen möchten zu ungenau. Nachzulesen ist das jedoch auf Wikipedia – den Code haben wir übrigens bei SELFPHP gefunden. Danke dafür.

Für diejenigen unter uns, die sich wie wir auch auf die Feiertage freuen, nicht viel Tipparbeit investieren möchten und die sich darüber hinaus mit der Oster-Berechnung auf 32-bit-Systemem bis ins Jahr 2037 begnügen, denen möchten wir an dieser Stelle etwas viel einfacheres ans Herz legen: easter_date(). Kurz und schmerzlos.

Und jetzt wünschen wir ihnen und ihren Familien ein schönes Osterwochenende. Wir sehen uns dann kommende Woche wieder. Bis dahin!

Foto: Easter Bunny by chedderfish, auf Flickr.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -