note 90311 deleted from function.juliantojd by thiago
| From: | thiago@php.net | Date: | Thu, 16 Apr 2009 01:47:15 +0000 |
| Subject: | note 90311 deleted from function.juliantojd by thiago | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-153368@lists.php.net to get a copy of this message | ||
Note Submitter: Yves Sucaet
----
Is it possible this function is incorrect? According to Numerical Recipes in Pascal (ISBN
0521375169), 5/23/1968 should have a Julian Date of 2440000. Instead, the value returned by the PHP
function is 2440013. An online converter such as http://www.onlineconversion.com/julian_date.htm
e.g. confirms this. FYI, I ported the NR function to PHP as follows:
function julday($mm, $id, $iyyy) {
$igreg=588829;
if ($iyyy == 0) {
echo 'there is no year zero.';
return null;
}
if ($iyyy < 0) $iyyy = $iyyy+1;
if ($mm > 2) {
$jy = $iyyy;
$jm = $mm+1;
} else {
$jy = $iyyy-1;
$jm = $mm+13;
}
$jul = floor(365.25*$jy)+floor(30.6001*$jm)+$id+1720995;
if ($id+31*($mm+12*$iyyy) >= $igreg) {
$ja = floor(0.01*$jy);
$jul = $jul+2-$ja+floor(0.25*$ja);
}
return $jul;
}