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

  1. Converting Between Julian Dates and Gregorian Calendar Dates“, United States Naval Observatory.
  2. D. Steel, “Marking Time: The Epic Quest to Invent the Perfect Calendar”, John Wiles & Sons, 2000.
Tagged with: , ,

Leave a Reply

Your email address will not be published. Required fields are marked *

*