PHP Doku:: Anzahl der Tage zwischen dem 21. März und Ostersonntag - function.easter-days.html

Verlauf / Chronik / History: (11) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzDatums- und zeitrelevante ErweiterungenKalenderCalendar Funktioneneaster_days

Ein Service von Reinhard Neidl - Webprogrammierung.

Calendar Funktionen

<<easter_date

frenchtojd>>

easter_days

(PHP 4, PHP 5)

easter_days Anzahl der Tage zwischen dem 21. März und Ostersonntag

Beschreibung

int easter_days ([ int $year [, int $method = CAL_EASTER_DEFAULT ]] )

Berechnet die Anzahl der Tage zwischen dem 21. März und Ostersonntag für das Jahr year.

Die Funktion kann an Stelle von easter_date() genutzt werden um auch für Jahre außerhalb des Wertebereichs von Unix Timestamps (also vor 1970 bzw. nach 2037) das Osterdatum zu bestimmen.

Das Osterdatum wurde von dem Konzil von Nicea im Jahr 325 auf den ersten Sonntag nach dem ersten Frühlingsvollmond nach der Tag- und Nachtgleiche festgelegt. Es wird dabei angenommen das die Tag- und Nachtgleiche immer auf den 21. März fällt so daß sich die Berechnung auf die Bestimmung des nächsten Vollmonds und des darauf folgenden Sonntags reduziert. Die dazu benutzten Algorithmen wurden um das Jahr 532 von Dionysius Exiguus eingeführt. Innerhalb des Julianischen Kalenders (für Jahre vor 1753) wird der Bestimmung der Mondphasen ein einfacher Zyklus von 19 Jahren zugrunde gelegt. Im Gregorianischen Kalender (für Jahre nach 1753 - erdacht von Clavius und Lilius, zuerst eingeführt von Papst Gregor XIII im Oktober 1582 und im September 1752 auch von Britanien und seinen Kolonien übernommen) wurden zwei zusätzliche Korekturfaktoren eingeführt um die Genauigkeit der Berechnungen zu erhöhen.

(Die Implementation beruht auf einem C Programm von Simon Kershaw, <webmaster at ely.anglican dot org>)

Parameter-Liste

year

Das Jahr als eine Zahl größer 0

method

Ermöglicht die Berechnung auf Basis des Gregorianischen Kalenders für den Zeitraum von 1582 bis 1752 wenn CAL_EASTER_ROMAN übergeben wird. Eine vollständige Liste der Kalenderkonstanten finden Sie unter calendar constants.

Rückgabewerte

Die Anzahl der Tage die der Ostersonntag im gegebenen Jahr hinter dem 21ten März liegt.

Changelog

Version Beschreibung
Seit 4.3.0 Der Parameter year ist nun Optional und wird mit dem aktuellen Jahr gemäß der lokalen Zeit vorbelegt falls nicht vorhanden.
Seit 4.3.0 Der Parameter method wurde hinzugefügt.

Beispiele

Beispiel #1 easter_days() Beispiel

<?php

echo easter_days(1999);        // 14, also April 4
echo easter_days(1492);        // 32, also April 22
echo easter_days(1913);        //  2, also March 23

?>

Siehe auch

  • easter_date() - Zeitpunkt des Osterfestes (0 Uhr) als Unix-Timestamp


2 BenutzerBeiträge:
- Beiträge aktualisieren...
ian at eiloart dot com-NOSPAM
19.11.2001 20:43
Also, be aware that the eastern orthodox churches sometimes have different dates for easter. See, for example <http://webexhibits.org/calendars/calendar-christian-easter.html>. And note that the dates of easter a subject to change,  for example, the churches might some day decide to unify the dates.
martin at diers dot cc
15.08.2001 19:59
This function appears to be Britanno-centric. When attempting to calculate the Gregorian date for Easter for years prior to 1753, the function returns the number or days since March 21st in the Julian Calendar, even though the Gregorian system was in effect in the rest of Europe since 1582. If you wish to calculate the date of easter for a Gregorian date from 1582 onward, use the following function, which duplicates the funcionality of easter_days:

<?php
   
function easter_days2($year) {
       
#First calculate the date of easter using Delambre's algorithm.
       
$a = $year % 19;
       
$b = floor($year / 100);
       
$c = $year % 100;
       
$d = floor($b / 4);
       
$e = $b % 4;
       
$f = floor(($b + 8) / 25);
       
$g = floor(($b - $f + 1) / 3);
       
$h = (19 * $a + $b - $d - $g + 15) % 30;
       
$i = floor($c / 4);
       
$k = $c % 4;
       
$l = (32 + 2 * $e + 2 * $i - $h - $k) % 7;
       
$m = floor(($a + 11 * $h + 22 * $l) / 451);
       
$n = ($h + $l - 7 * $m + 114);
       
$month = floor($n / 31);
       
$day = $n % 31 + 1;

       
#Return the difference between the JulianDayCount for easter and March 21'st
        #of the same year, in order to duplicate the functionality of the easter_days function
       
return GregorianToJD($month, $day, $year) - GregorianToJD(3,21,$year);
    }
?>



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)