One number for every instant
Calendars are awkward for calculations. Months have different lengths, leap years come and go, and the Gregorian reform of 1582 removed ten days. To find the time between two observations, astronomers use a single continuous count of days instead: the Julian Day (JD). It is the number of days, with a decimal fraction, elapsed since noon Universal Time on 1 January 4713 BC in the proleptic Julian calendar.
On that scale, noon UT on 28 September 2026 is JD 2461312.0. The fraction carries the time of day: 0.25 is six hours and 0.5 is half a day. Almost every formula in Astronomical Algorithms starts by converting a date to a Julian Day, and all the positions on AstroAlgos are computed that way.
Why 4713 BC, and why noon?
In 1583 the scholar Joseph Scaliger proposed the Julian Period, a cycle of 7,980 years obtained by multiplying three calendar cycles used for dating: the 28-year solar cycle, the 19-year lunar (Metonic) cycle and the 15-year Roman indiction. The last time all three cycles started together was 4713 BC. That date lies before any recorded historical event, so every date in history has a positive day number. In the 19th century John Herschel turned this idea into the day count astronomers still use.
The day starts at noon, not at midnight, because astronomers used to observe through the night. With a noon start, a whole night of observations keeps the same whole day number. This makes the fraction of a JD look odd at first: midnight UT always ends in .5.
Converting a date to a Julian Day
Meeus gives a compact method that works for any year, positive or negative, provided the result is not a negative JD. Let Y be the year, M the month (1–12) and D the day of the month with its decimal fraction:
If M ≤ 2: Y = Y − 1 and M = M + 12Gregorian calendar (from 15 October 1582): A = INT(Y / 100) B = 2 − A + INT(A / 4)Julian calendar (up to 4 October 1582): B = 0JD = INT(365.25 × (Y + 4716)) + INT(30.6001 × (M + 1)) + D + B − 1524.5
INT means the integer part. January and February are counted as months 13 and 14 of the previous year, so that the leap day falls at the end of the year and does not disturb the rest of the calculation.
Worked examples
| Date and time (UT) | Calendar | Julian Day |
|---|---|---|
| 1 January 4713 BC, 12h | Julian | 0.0 |
| 27 January 333, 12h | Julian | 1842713.0 |
| 4 October 1582, 0h | Julian (last day) | 2299159.5 |
| 15 October 1582, 0h | Gregorian (first day) | 2299160.5 |
| 4.81 October 1957 (Meeus' Sputnik 1 example) | Gregorian | 2436116.31 |
| 1 January 1970, 0h (Unix epoch) | Gregorian | 2440587.5 |
| 1 January 2000, 12h (J2000.0) | Gregorian | 2451545.0 |
| 28 September 2026, 12h | Gregorian | 2461312.0 |
Historians and astronomers count years differently before our era. Astronomers put a year 0 before year 1, so the year historians call 585 BC is year −584 in astronomical numbering. Remember this when you enter an ancient date in a formula.
Useful tricks with Julian Days
- Time between two dates: subtract the two Julian Days. From J2000.0 to noon on 28 September 2026 there are exactly 9,767 days.
- Julian centuries: many series in Meeus use T = (JD − 2451545.0) / 36525, the time in centuries of 36,525 days since J2000.0. For noon on 28 September 2026, T = 0.26740589.
- Day of the week: take the JD at 0h, add 1.5 and find the remainder after division by 7. The result 0 means Sunday, 1 Monday and so on. For 28 September 2026 the result is 1: a Monday.
- Modified Julian Day: MJD = JD − 2400000.5 starts at midnight and uses smaller numbers. Satellite and geodesy data often use it. Noon on 28 September 2026 is MJD 61311.5.
- From Unix time: JD = seconds since 1970 / 86400 + 2440587.5. This is the easiest way to compute a Julian Day in a program.
JD and JDE
A Julian Day counted in Universal Time, which follows the Earth's irregular rotation, is written JD. When the same count uses the uniform Terrestrial (Dynamical) Time, it is called the Julian Ephemeris Day, JDE. Planetary theories need JDE. The two currently differ by ΔT, about 69 seconds or 0.0008 day, and the difference matters for fast-moving objects such as the Moon.
Interactive calculator
Select a date and a time (UTC) to compute the Julian Day:
JavaScript example
The same method in a few lines of code, for the Gregorian calendar:
function toJulianDay(year, month, day) {
if (month <= 2) { year -= 1; month += 12; }
const A = Math.floor(year / 100);
const B = 2 - A + Math.floor(A / 4);
return Math.floor(365.25 * (year + 4716))
+ Math.floor(30.6001 * (month + 1)) + day + B - 1524.5;
}
// toJulianDay(2026, 9, 28.5) → 2461312
// From a JavaScript Date: date.getTime() / 86400000 + 2440587.5
Explore it on AstroAlgos
Frequently asked questions
What is the Julian Day today?
Use the calculator on this page. As a reference, noon UT on 28 September 2026 is JD 2461312.0, and the count increases by exactly 1 every day at 12h UT.
Why does the Julian Day start at noon?
Astronomers traditionally observed at night. With a day that starts at noon UT, a whole night of observations from Europe keeps the same day number, which made records simpler.
Is the Julian Day related to the Julian calendar?
Only indirectly. The Julian Day is a day count, not a calendar. It is built on Scaliger's Julian Period, which uses Julian calendar years, and its origin is expressed in that calendar.