private static function iauCal2jd($iy, $im, $id, &$djm0, &$djm)
    {
        $j;
        $ly;
        $my;
        $iypmy;
        /* Earliest year allowed (4800BC) */
        $IYMIN = -4799;
        /* Month lengths in days */
        $mtab = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
        /* Preset status. */
        $j = 0;
        /* Validate year and month. */
        if ($iy < $IYMIN) {
            return -1;
        }
        if ($im < 1 || $im > 12) {
            return -2;
        }
        /* If February in a leap year, 1, otherwise 0. */
        $ly = (($im == 2) && !($iy % 4) && ($iy % 100 || !($iy % 400)));
        /* Validate day, taking into account leap years. */
        if (($id < 1) || ($id > ($mtab[$im - 1] + $ly))) {
            $j = -3;
        }
        /* Return result. */
        $my    = intval(($im - 14) / 12);
        $iypmy = intval($iy + $my);
        $djm0  = 2400000.5;
        $djm   = (double)(intval((1461 * ($iypmy + 4800)) / 4) +
          intval((367 * intval($im - 2 - 12 * $my)) / 12) -
          intval((3 * (intval(($iypmy + 4900) / 100))) / 4) +
          intval($id - 2432076));

        /* Return status. */

        return $j;
    }
private static function iauCal2jd($iy, $im, $id, &$djm0, &$djm)
    {
        $j;
        $ly;
        $my;
        $iypmy;
        /* Earliest year allowed (4800BC) */
        $IYMIN = -4799;
        /* Month lengths in days */
        $mtab = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
        /* Preset status. */
        $j = 0;
        /* Validate year and month. */
        if ($iy < $IYMIN) {
            return -1;
        }
        if ($im < 1 || $im > 12) {
            return -2;
        }
        /* If February in a leap year, 1, otherwise 0. */
        $ly = (($im == 2) && !($iy % 4) && ($iy % 100 || !($iy % 400)));
        /* Validate day, taking into account leap years. */
        if (($id < 1) || ($id > ($mtab[$im - 1] + $ly))) {
            $j = -3;
        }
        /* Return result. */
        $my    = intval(($im - 14) / 12);
        $iypmy = intval($iy + $my);
        $djm0  = 2400000.5;
        $djm   = (double)(intval((1461 * ($iypmy + 4800)) / 4) +
          intval((367 * intval($im - 2 - 12 * $my)) / 12) -
          intval((3 * (intval(($iypmy + 4900) / 100))) / 4) +
          intval($id - 2432076));

        /* Return status. */

        return $j;
    }
private static function iauCal2jd ( $ iy , $ im , $ id , & $ djm0 , & $ djm ) { $ j ; $ ly ; $ my ; $ iypmy ; /* Earliest year allowed (4800BC) */ $ IYMIN = - 4799 ; /* Month lengths in days */ $ mtab = [ 31 , 28 , 31 , 30 , 31 , 30 , 31 , 31 , 30 , 31 , 30 , 31 ] ; /* Preset status. */ $ j = 0 ; /* Validate year and month. */ if ( $ iy < $ IYMIN ) { return - 1 ; } if ( $ im < 1 || $ im > 12 ) { return - 2 ; } /* If February in a leap year, 1, otherwise 0. */ $ ly = ( ( $ im == 2 ) && ! ( $ iy % 4 ) && ( $ iy % 100 || ! ( $ iy % 400 ) ) ) ; /* Validate day, taking into account leap years. */ if ( ( $ id < 1 ) || ( $ id > ( $ mtab [ $ im - 1 ] + $ ly ) ) ) { $ j = - 3 ; } /* Return result. */ $ my = intval ( ( $ im - 14 ) / 12 ) ; $ iypmy = intval ( $ iy + $ my ) ; $ djm0 = 2400000.5 ; $ djm = ( double ) ( intval ( ( 1461 * ( $ iypmy + 4800 ) ) / 4 ) + intval ( ( 367 * intval ( $ im - 2 - 12 * $ my ) ) / 12 ) - intval ( ( 3 * ( intval ( ( $ iypmy + 4900 ) / 100 ) ) ) / 4 ) + intval ( $ id - 2432076 ) ) ; /* Return status. */ return $ j ; }
Converts a calendar date to a Julian day count

@param  int   $iy   Year
@param  int   $im   Month
@param  int   $id   Day
@param  float $djm0 JD part 1
@param  float $djm  JD part 2

@return int
Converts a calendar date to a Julian day count