Home | About | Partners | Contact Us
VA Linux Systems


The Julian Date Project

The time now is: 2018-01-18 21:49:05 = JD: 2458137.409086
To exercise the calculator, you can enter a calendar date and ask for
a julian date to be calculated. Or enter a julian date
and ask for a calendar date to be calculated.
Given Calendar Date 2018-01-18 21:49:05
21.81806 hours
49.083 minutes
5.000 seconds
Day of year: 18
Calculated Julian Date
From: 2018-01-18 21:49:05
Your inputs will not be verified to be a valid date.
However, your input will become a valid date as it is calculated.
For example, you can ask for a February 29 of a non-leap year
and it will become March 01.

The valid lower limit for a date is -4712-01-01 12:00:00 = JD: 0.0
The upper limit for year and julian day number will depend
upon the size of an integer for the PHP implementation
on the WEB server system. A 32 bit machine has an upper limit
of 5879490-02-28 23:59:59 -> JD: 2149160745.499989
or: JD: 2147438064.499988 -> 5874773-08-15 23:59:59
(that is an interesting little difference that should be investigated !)

The current release can be found at:
jday - Version 2.4
Version 2.4 2005-10-10
Updated with modern versions of gnu configure files
Version 1.3 release contains source for:
The project summary page can be found at:
The bug track page can be found at:
A man page for these commands and functions (v2.4):
--Hiram Clawson | jday@hiram. ws | www.hiram.ws
This page last updated: 2005-10-10 | 10 October 2005 | JD 2453654.355984
Update 2005-10-10 | 10 October 2005 | JD 2453654.355984
Version 2.4 release.
Days between date calculator included: dbd
Example source for JAVA, PERL, AWK, PHP
Update 2002-11-10 | 11 November 2002 | JD 2452589.189641
Version 1.3 is released. Add reference
to html man page. Add calculator demonstration to this
home page.
Update 2001-09-17 | 17 September 2001 | JD 2452170.357199
Removed references to FTP site. Everything is now available
via http. Also add a link to the trigbench.c idea.
Update 2000-12-01 | 17 August 2000 | JD 2451774.756123
Version 1.2 is now released.
Version 1.2 now contains a proper configure script
and README file to describe how to use the programs and test scenarios.

The jday binary can be used to convert calendar dates to astronomical julian dates. This number is useful for a variety of purposes. Especially related to calculating elapsed time between instances over large or short periods of time.

The associated j2d binary can convert julian dates to calendar dates.

And there is a dbd binary to calculate days between dates. (in version 2.4)

Please note the man page, and you can run them with a -h argument and they will display their usage messages. jday run without arguments will display the current julian date if your computer clock and timezone are set correctly.
The date system in use follows these rules:
1. Julian calendar dates before October 1582
2. Gregorian calendar dates after October 1582
3. 04 October 1582 Julian (JD 2299160) is followed by 15 October 1582 Gregorian (JD 2299161)
4. Julian calendar means leap years every four years, no exceptions
5. Gregorian calendar means leap years every four years except years not divisible by 400
6. There is a year 0 between years -1 and 1
7. The earliest usable date is -4712-01-01 12:00:00 (JD 0)
8. The maximum usable date is 5874773-08-15 23:59:59 (JD 2147438064.499988 )
9. The time represented by Julian Dates is Barycentric Dynamical Time (TDB) since there are no leap seconds accounted for in the conversions. However in practice, since we are looking at our clocks which are Coordinated Universal Time (UTC) and thus entering UTC we are getting a Julian Date which we think might represent UTC but it is not. The input and output of this conversion will always be TDB. Please note the delta-T table showing the difference between UTC and TDB. There is currently about 68 seconds different between the two times. For interval calculations it is fine to use UTC times as long as there are no leap seconds in the interval.

To Do List:

  • Version 2.4 is released (2005-10-10). It does have JAVA, but I don't see any C++ version. Must have forgot that.
  • Version 2.1 is now (2002-11-21) in the works. Will include Java and C++ versions. The version 2.1 is a major deviation from versions 1 because the format of the output will change from yyyy/mm/dd to yyyy-mm-dd to follow the ISO-8601 definition. The Java version is already in CVS.
  • It should work for negative julian dates. A feature request.
  • How about years divisible by 4000 ? Are they leap years ?
  • We should use 64 bit integers and thus have a larger range of usable values. A feature request.
  • The beginning of a trig benchmark: trigbench.c
    STATUS: FIXED There are errors on 64 bit machines. On Alpha linux there is a problem with the use of the (long) declaration in the code. For some reason I can't get it to properly assign a (long) value into a (double). Doesn't make any sense and I can't reproduce it in a small example. However, to fix it, and this should be in the code anyway, there is no need to have the (long) types in the code. Those declarations should be changed to simple (int) and then it would work OK.
    FIXED IN CVS 2002-11-13, released in Version 2.4 2005-10-10

See also:

SourceForge Logo

All trademarks and copyrights on this page are properties of their respective owners. Forum comments are owned by the poster. The rest is copyright 1999-2000 VA Linux Systems, Inc.