Julian date is a count of the number of days since noon on January 1, 4713 BC in the proleptic Julian calendar. This epoch was chosen by Joseph Scaliger in 1583 as the start of the “Julian Period”: a 7,980 year period that is the multiple of the 19-year Metonic cycle, the 28-year solar/dominical cycle, and the 15-year indiction cycle. It is a conveniently-located epoch since it precedes all written history. A simple Fortran function for computing Julian date given the Gregorian calendar year, month, day, and time is:
function julian_date(y,m,d,hour,minute,sec) use, intrinsic :: iso_fortran_env, only: wp => real64 implicit none real(wp) :: julian_date integer,intent(in) :: y,m,d ! Gregorian year, month, day integer,intent(in) :: hour,minute,sec ! Time of day integer :: julian_day_num julian_day_num = d-32075+1461*(y+4800+(m-14)/12)/4+367*& (m-2-(m-14)/12*12)/12-3*((y+4900+(m-14)/12)/100)/4 julian_date = real(julian_day_num,wp) + & (hour-12.0_wp)/24.0_wp + & minute/1440.0_wp + & sec/86400.0_wp end function julian_date
- “Converting Between Julian Dates and Gregorian Calendar Dates“, United States Naval Observatory.
- D. Steel, “Marking Time: The Epic Quest to Invent the Perfect Calendar”, John Wiles & Sons, 2000.