PRO DAYCNV, XJD, YR, MN, DAY, HR On_error,2 if N_params() lt 2 then begin print,"Syntax - DAYCNV, xjd, yr, mn, day, hr' print,' Julian date, xjd, should be specified in double precision' return endif ; Adjustment needed because Julian day starts at noon, calendar day at midnight jd = long(xjd) ;Truncate to integral day frac = double(xjd) - jd + 0.5 ;Fractional part of calendar day after_noon = where(frac ge 1.0, Next) if Next GT 0 then begin ;Is it really the next calendar day? frac[after_noon] = frac[after_noon] - 1.0 jd[after_noon] = jd[after_noon] + 1 endif hr = frac*24.0 l = jd + 68569 n = 4*l / 146097l l = l - (146097*n + 3l) / 4 yr = 4000*(l+1) / 1461001 l = l - 1461*yr / 4 + 31 ;1461 = 365.25 * 4 mn = 80*l / 2447 day = l - 2447*mn / 80 l = mn/11 mn = mn + 2 - 12*l yr = 100*(n-49) + yr + l return end