Suchen:
  • Impressum
  • Kontakt
  • Startseite
Effekt! Softwareentwicklung
  • Themen

    • Suchmaschinenoptimierung (SEO)
    • Usability
    • Projektplanung
    • Unterschiede
    • 10 Tipps zur Webseitenerstellung
  • Tutorials

    • Datum mit PHP
    • Uhrzeit mit PHP/AJAX
    • Feiertage ermitteln mit PHP
    • Arrays sortieren
    • Arrays und Iteratoren
    • Paypal-Buttons integrieren
    • Google Maps einbinden
    • Zufallsbanner mit Javascript
    • Effekte mit CSS3
    • Herausfahrendes Fenster mit jQuery
  • Tools

    • MD5-Hash-Generator
Startseite
Feiertage ermitteln mit PHP

Feiertage ermitteln mit PHP

Es gibt ja Feiertage deren Datum variabel ist, z.B. Ostern oder Pfingsten. Die meisten sind auf den Ostersonntag ausgerichtet, welcher sich durch die Gaußsche Osterformel von Carl Friedrich Gauß mit PHP berechnen lässt.

Uhrzeit mit PHP/AJAX
 
Arrays sortieren

Beispiel

Das ausgewählte Jahr zeigt die errechneten Daten an, dies lässt sich durch das Vor- und Zurückblättern überprüfen.

Die Berechnungen sind nicht so ganz trivial, wie das folgende Tutorial zeigen wird..

Schritt 1: Berechnung Ostersonntag

Zunächst wäre es sinnvoll eine Klasse zu erstellen, in welcher als erstes Variablen festgelegt werden und über den Konstruktor das zu behandelnde Jahr geholt wird..

Klasse

Mit dem übergebenen Jahr haben wir nun einen Ausgangspunkt, auf den wir uns beziehen können. Was folgt ist die eben angesprochene Gaußsche Osterformel (Zeilen 15-27). Das Ergebnis wird anschließend noch etwas formatiert (Zeilen 28-39) und durch return (Zeile 40) zurückgegeben..

Ostersonntag

Jetzt haben wir zwei weitere Ausgangspunkte erhalten können, nämlich den Tag und den Monat vom Ostersonntag.

Schritt 2: Berechnung Ostermontag

Der Ostermontag folgt ja bekanntlich auf dem Ostersonntag. So muss also nur der Tagwert vom Ostersonntag um 1 addiert werden..

Ostermontag

Und auch hier wird das Ganze nach der Berechnung noch ordentlich formatiert und zurückgegeben.

Schritt 3: Berechnung Karfreitag

Der Karfreitag liegt immer zwei Tage hinter dem Ostersonntag, deswegen wird der Tagwert vom Ostersonntag um 2 subtrahiert..

Karfreitag

So erhalten wir das Datum vom Karfreitag. Schauen wir uns nun Christi Himmelfahrt an...

Schritt 4: Berechnung Christi Himmelfahrt

Christi Himmelfahrt findet immer an einem Donnerstag und 39 Tage nach Ostersonntag statt. Hier muss also der Zeitraum zwischen dem 30.04. bis 03.06. betrachtet werden. Dementsprechend ist es erforderlich durch Fallunterscheidungen nach dem richtigen Tag zu suchen..

Christi Himmelfahrt

An dieser Berechnung hatte ich damals am längsten gesessen :-)

Schritt 5: Berechnung Pfingstsonntag

Pfingstsonntag ist immer 49 Tage (= 7 Wochen) nach Ostersonntag, also wird der Tagwert vom Ostersonntag um 49 addiert..

Pfingstsonntag

Das sieht dann so aus.

Schritt 6: Berechnung Pfingstmontag

Pfingstmontag ist immer 50 Tage nach Ostersonntag, der Tagwert vom Ostersonntag wird um 50 addiert..

Pfingstmontag

Vom Prinzip her sind die Berechnungen sehr ähnlich, so auch bei Schritt 7..

Schritt 7: Berechnung Fronleichnam

Fronleichnam ist immer 60 Tage nach Ostersonntag, der Tagwert vom Ostersonntag wird um 60 addiert..

Fronleichnam

Damit hätten wir nun alle variablen Feiertage, die nach Ostern ausgerichtet sind.

Schritt 8: Berechnung Buß- und Bettag

Der Buß- und Bettag ist seit 1995 nur noch ein gesetzlicher Feiertag in Sachsen. Dieser findet immer an einem Mittwoch zwischen dem 16.11. und dem 22.11. statt und richtet sich nach dem 1. Advent aus (11 Tage davor, falls dieser Tag nicht auf den 23.11. fällt).

Buß- und Bettag

Geschafft! Jetzt haben wir alle variablen Feiertage Deutschlands zusammen und können diese uns ausgeben lassen..

Schritt 9: Ausgabe der Feiertage

Jetzt lassen wir uns das Ergebnis anzeigen...

Ausgabe

Dieses Kapitel hat jetzt hoffentlich niemanden entmutigt :-)

Script herunterladen

Feiertage

Verwendete Technologien

HTML - PHP
Uhrzeit mit PHP/AJAX
nach oben
Arrays sortieren
© 2010-2011 Effekt! - Softwareentwicklung | Letzte Aktualisierung: 15.12.2011 - 15:40 Uhr