note 34916 added to function.date

From: Date: Mon, 11 Aug 2003 21:20:57 +0000
Subject: note 34916 added to function.date
Groups: php.notes 
Request: Send a blank email to php-notes+get-53911@lists.php.net to get a copy of this message
I needed to be able to calculate Easter # based on the C implementation at # http://www.ely.anglican.org/etc/easter2.c # of the algorithm found here # http://www.oremus.org/liturgy/etc/ktf/app/easter.html function Easter($year) { $golden = ($year % 19) + 1; # Gregorian calendar $dom = ($year + ($year/4) - ($year/100) + ($year/400)) % 7; if( $dom<0 ) $dom += 7; $solar = floor(($year - 1600)/100 - ($year - 1600)/400); $lunar = floor(((($year - 1400)/100) * 8) /25); $pfm = floor((3 - (11 * $golden) + $solar - $lunar) % 30); if( $pfm<0 ) $pfm += 30; if( ($pfm==29) || ($pfm==28 && $golden>11) ) $pfm--; $tmp = floor((4 - $pfm - $dom) % 7); if( $tmp<0 ) $tmp += 7; #$easter = $pfm + $tmp + 1; # for some reason the php implementation # of the algorithm was off by one day in years # evenly divisible by 4 ??? could there be a bug # in mktime? $easter = $pfm + $tmp + ((fmod($year,4)==0)?0:1); if( $easter<11 ) { $mo = 3; $da = $easter + 21; } else { $mo = 4; $da = $easter - 10; } $rtn = mktime(0,0,0,$mo,$da,$year); return $rtn; } ---- Manual Page -- http://www.php.net/manual/en/function.date.php Edit Note -- http://master.php.net/manage/user-notes.php?action=edit+34916 Delete Note -- http://master.php.net/manage/user-notes.php?action=delete+34916&report=yes Reject Note -- http://master.php.net/manage/user-notes.php?action=reject+34916&report=yes

« previous php.notes (#53911) next »