Date Conversions 



Gregorian or Julian Calendar Date
to Julian Day Count 
See Also: JD2CALXXX() and
JD2GREG() 
Notes: Julian day number (JD)
is an astronomical calendar system whose largest unit is the day.
Each day has a value one greater than the next and dates never
cycle back to zero. For instance at noon on January 1, 2000 the JD
was: 2,451,545. This continuous day count makes it easy to
manipulate dates mathematically  there are no leap days to worry
about. 

For most of the current epoch in the
Western world two widespread civil calendars have been in use. The
Julian calendar (no relation to the JD), which commenced the last
B.C. century in Roman times, and the Gregorian calendar that was
phased in worldwide from the 16th to the 20th century A.D. and is
the calendar on your wall. See Julian and Gregorian
Calendars for information on what these calendars achieved
compared to prior attempts. 

Julian day numbers start at noon (12
UT) and civil calendar dates start at midnight (0 UT). Therefore
conversions from the start of a civil calendar day to JD dates
result in a JD that is halfway over  ending in .5 days. To avoid
timezone confusion you MUST convert day/time to UT if requiring a
JD for a certain time during that day. 

The first function below will
convert Julian or Gregorian calendar dates to JD. The second and
third functions are derived from the first to only handle the
conversion of Gregorian dates  the conversion of most use for
current calculations. The third function differs from the first
two in that input is a date in decimalyear form  1999.5 for
instance. This is useful in determining the JD of a midyear epoch,
such as used in the Astronomical Almanac section H: Bright
Stars. 

Resources: [AA: pp.
6061]; [ESAA: p. 604, 606]; [S&T  May, 1984: pp. 454, 455] 

Auxiliary functions for Civil
Calendar Date to Julian Date conversion: 
Adjust Month Number: 

Adjust Year Number: 

Get Century Number: 

Get LeapYear Count: 

Constant value for JD at Noon,
January 1, 2000: 



Function to convert
Gregorian/Julian Year, Month and Day format to Julian day number 
Input:
Year and Month as integer, Day can be fractional, IsGREG is 1 if
Gregorian date input, any other value is Julian calendar. 
Output:
is JD in decimal. 
For BC era take year as negative and
add one: 2 BC is 2+1 = 1. This is to compensate for the fact
that there was is no year zero in our calendar system. JD does not
exist before January 1.5 (noon UT of the first day), 4713 BC. 
Function to convert
Gregorian Year, Month and Day format to Julian day number 
Input:
Year and Month as integer, Day can be fractional 
Output:
is JD in decimal. 
Same restrictions as above, but only
converts Gregorian dates. 
Function to convert
Gregorian Decimal Year to Julian day number 
Input:
Year as a decimal number. 
Output:
JD as a decimal number. 
Example:
Convert Gregorian date/time to Julian day number 

Input year, month and day fraction
(default are User Constants): 

So we have: 

The JD for this date is: 


Fractional JD Check 
The fractional part of JD should be
equal to the time from noon (0.5) to the fraction part of DAYDec. 


Example:
Find Julian Date for midYear Epoch. 

Input year of interest: For this
year: Resulting JD: 

Julian Day Count to
Gregorian or Julian Calendar Date 
See Also:
CAL2JD() and GREG2JD() 
Notes:
The functions here will determine the year, month, and day
equivalent of any nonnegative Julian day number. The first set of
functions will return dates in Julian or Gregorian form based on
the setting of the IsGreg flag: 1 = auto, 0 = Julian, 1
= Gregorian. In auto mode dates returned from the span of the
BC years to October 4, 1582 AD are in the Julian calendar and
dates after that are in the Gregorian calendar. See Julian
and Gregorian Calendars for more about this cutoff date.
The second set of functions are convenient for converting JD to
Gregorian only. 

Resources:
[AA: p. 63]; [ESAA: p. 604, 606] 

Auxiliary functions used
for JD to Year, Month and Date conversion functions: 











The following three
functions will convert JD to Calendar Date 
Input:
JD and IsGREG flag for calendar return type (see text above): 1 =
auto, 0 = Julian, 1 = Gregorian 
Output:
Indicated Day, Month, or Year in UT time zone 

JD to Calendar Day of Month: 

JD to Calendar Month: 

JD to Calendar Year: 


Formatting Matrix for above
calendar equations 
Input:
JD and IsGREG flag (see above equation) 
Output:
Date displayed in year, month and day format inside a matrix. 


Convert JD to Gregorian
Date with the following three functions 
Input:
JD 
Output:
Indicated Day, Month, or Year in UT time zone 
JD to Gregorian Day of
Month: 

JD to Gregorian Month: 

JD to Gregorian Year: 


Formatting Matrix for above
Gregorian equations 
Input:
JD 
Output:
Date displayed in year, month and day format inside a matrix. 


Function to convert Julian
day number to Gregorian Decimal Year 
Input:
JD as a decimal number. 
Output:
Year as a decimal number. 


Example:
Convert JD to an epoch year 


Input Julian day number: 
Resulting epoch
year: 



Example:
Demonstrates how one date can be interpreted between calendar systems.


Input Julian day number:

Results using various settings of IsGreg flag:


Julian Calendar 
Forced Julian calendar result 

Auto Select Calendar 
Returns Gregorian calendar after Oct 4, 1582 

Gregorian Calendar 
Forced Gregorian calendar result 

Result using dedicated Gregorian
Calendar function: 
Another way of achieving Forced Gregorian calendar result 
Julian Day Count to Julian
Centuries from J2000 
Notes:
Many functions use the Julian day count in terms of Julian
centuries (JC) from the year 2000. A Julian century is 100 years
of 365.25 days each. Dates prior to the year 2000 will have a
negative Julian century value. 

Resources:
[AA: p. 83]; [TAA: p. B6] 

Julian Centuries from J2000
epoch 
Input:
Julian day number in decimal 
Output:
decimal number of JC from J2000. 


Example:
Given Julian day count, return Julian centuries from J2000: 

Input year, month and day fraction
to generate JD from (default are User Constants): 

So we have: 

The Julian day number for this date
is: 
yields: 

Find JC from J2000: 
Returns Julian Day Number
at 0.0 UT for a Given Julian Day Count 
Notes:
Because Julian days start at noon UT, the Julian day integer
advances over the course of a civil day. This system keeps the
integer part of Julian day numbers constant at night when most
astronomers are working. The function here returns the Julian day
at midnight, the start of the civil day, as an aide in determining
the calendar day represented by this day number. 

Determine JD at Zero Hours
UT of a given JD date 
Input:
Julian day count. 
Output:
JD at 0 UT. 


Example:
Determine Gregorian calendar date of JD 
Input JD: 
Find JD at civil midnight:
yields: 

Check solution:
Look at input JD and JD at civil midnight (JD0UT) translated into
calendar dates. Year and month should match; the day number from
JD0UT should be the truncated day number from JD. 


Astro
Utilities Electronic Book Copyright ©
1999 Pietro Carboni. All rights reserved. 
