Julian Date
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
References
- "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.