note 39990 added to function.date
| From: | daniel at rn2 dot php dot net | Date: | Tue, 17 Feb 2004 19:43:38 +0000 |
| Subject: | note 39990 added to function.date | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-65321@lists.php.net to get a copy of this message | ||
The following function will return the date (on the Gregorian calendar) for Orthodox Easter
(Pascha). Note that incorrect results will be returned for years less than 1601 or greater than
2399. This is because the Julian calendar (from which the Easter date is calculated) deviates from
the Gregorian by one day for each century-year that is NOT a leap-year, i.e. the century is
divisible by 4 but not by 10. (In the old Julian reckoning, EVERY 4th year was a leap-year.)
This algorithm was first proposed by the mathematician/physicist Gauss. Its complexity derives from
the fact that the calculation is based on a combination of solar and lunar calendars.
<?
function getOrthodoxEaster($date){
/*
Takes any Gregorian date and returns the Gregorian
date of Orthodox Easter for that year.
*/
$year = date("Y", $date);
$r1 = $year % 19;
$r2 = $year % 4;
$r3 = $year % 7;
$ra = 19 * $r1 + 16;
$r4 = $ra % 30;
$rb = 2 * $r2 + 4 * $r3 + 6 * $r4;
$r5 = $rb % 7;
$rc = $r4 + $r5;
//Orthodox Easter for this year will fall $rc days after April 3
return strtotime("3 April $year + $rc days");
}
?>
----
Manual Page -- http://www.php.net/manual/en/function.date.php
Edit -- http://master.php.net/manage/user-notes.php?action=edit+39990
Delete -- http://master.php.net/manage/user-notes.php?action=delete+39990&report=yes
Reject -- http://master.php.net/manage/user-notes.php?action=reject+39990&report=yes
Search -- http://master.php.net/manage/user-notes.php