note 14042 modified in function.easter-date by irc-html
| From: | irc-html@php.net | Date: | Mon, 31 Dec 2001 01:38:01 +0000 |
| Subject: | note 14042 modified in function.easter-date by irc-html | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-24006@lists.php.net to get a copy of this message | ||
If for a reason your server does not support this (mind didn't and they wouln't upgrade)
you can do the following. It's kind of a big hack.
$y = date("Y");
$value = substr(strstr(($y / 19), '.'), 1, 3); // Do the calculation
if($value == "")
{
$value = "000"; // Keep things simple.
}
$match = array("000", "052", "105", "157", "210",
"263", "315", "368", "421", "473",
"526", "578", "631", "684", "736",
"789", "842", "894", "947");
// Mini-Database
if($y >= 1900 && $y <= 2199)
{
$month = array("Apr", "Apr", "Mar", "Apr", "Mar",
"Apr", "Apr", "Mar", "Apr", "Apr",
"Mar", "Apr", "Apr", "Mar", "Apr",
"Mar", "Apr", "Apr", "Mar");
$day = array("14", "3", "23", "11", "31",
"18", "8", "28", "16", "5", "25",
"13", "2", "22", "10", "30", "17",
"7", "27");
} elseif(($y >= 2200 && $y <= 2299) || ($y >= 2400 && $y <= 2499)) {
$month = array("Apr", "Apr", "Mar", "Apr", "Apr",
"Mar", "Apr", "Mar","Apr", "Apr", "Mar",
"Apr", "Apr", "Mar", "Apr", "Mar",
"Apr", "Apr", "Mar");
$day = array("15", "4", "24", "12", "1",
"21", "9", "29", "17", "6", "26",
"14", "3", "23", "11", "31", "18",
"8", "28");
} elseif(($y >= 2300 && $y <= 2399) || ($y >= 2500 && $y <= 2599)) {
$month = array("Apr", "Apr", "Mar", "Apr", "Apr",
"Mar", "Apr", "Mar", "Apr", "Apr",
"Mar", "Apr", "Apr", "Mar", "Apr",
"Apr", "Mar", "Apr", "Mar");
$day = array("16", "5", "25", "13", "2",
"22", "10", "30", "18", "7", "27",
"15", "4", "24", "12", "1", "21",
"9", "29");
}
for ($i=0;$i<sizeof($match);$i++)
{
if (strstr($value,$match[$i]))
{
$day = $day[$i] + 7; // Got Paschal Full Moon and we add 7 for next sunday.
print $month[$i] . "|" . $day; // Print the Month and date.
}
}
--was--
If for a reason your server does not support this (mind didn't and they wouln't upgrade)
you can do the following. It's kind of a big hack.
$y = date("Y");
$value = substr(strstr(($y / 19), '.'), 1, 3); // Do the calculation
if($value == "")
{
$value = "000"; // Keep things simple.
}
$match =
array("000","052","105","157","210","263","315","368","421","473","526","578","631","684","736","789","842","894","947");
// Mini-Database
if($y >= 1900 && $y <= 2199)
{
$month =
array("Apr","Apr","Mar","Apr","Mar","Apr","Apr","Mar","Apr","Apr","Mar","Apr","Apr","Mar","Apr","Mar","Apr","Apr","Mar");
$day =
array("14","3","23","11","31","18","8","28","16","5","25","13","2","22","10","30","17","7","27");
} elseif(($y >= 2200 && $y <= 2299) || ($y >= 2400 && $y <= 2499)) {
$month =
array("Apr","Apr","Mar","Apr","Apr","Mar","Apr","Mar","Apr","Apr","Mar","Apr","Apr","Mar","Apr","Mar","Apr","Apr","Mar");
$day =
array("15","4","24","12","1","21","9","29","17","6","26","14","3","23","11","31","18","8","28");
} elseif(($y >= 2300 && $y <= 2399) || ($y >= 2500 && $y <= 2599)) {
$month =
array("Apr","Apr","Mar","Apr","Apr","Mar","Apr","Mar","Apr","Apr","Mar","Apr","Apr","Mar","Apr","Apr","Mar","Apr","Mar");
$day =
array("16","5","25","13","2","22","10","30","18","7","27","15","4","24","12","1","21","9","29");
}
for ($i=0;$i<sizeof($match);$i++)
{
if (strstr($value,$match[$i]))
{
$day = $day[$i] + 7; // Got Paschal Full Moon and we add 7 for next sunday.
print $month[$i] . "|" . $day; // Print the Month and date.
}
}
http://www.php.net/manual/en/function.easter-date.php