Julian Date Calculator
Solve the classic Julian Date relation for any of its four quantities — the Julian Date itself, the year, the month, or the day of month — with step-by-step math, a live epoch timeline showing where the date falls between J1900 and J2100, and companion metrics including Modified Julian Date, Truncated Julian Date, Julian century from J2000.0, and the day of the week.
Julian Date is a continuous day count
The Julian Date is a single real number that advances by 1.0 for every solar day since a fixed epoch at noon UT on 1 January 4713 BC in the proleptic Julian calendar (invented by Joseph Scaliger in 1583, not by Julius Caesar — the name honours his father Julius Scaliger). Because it is continuous, it avoids the complexity of calendar reforms, leap years, differing month lengths, and BCE/CE transitions: every astronomical computation involving time can simply subtract two JDs to get the elapsed time in days. Its monotonic, non-repeating nature makes it ideal for recording observations, dating historical events, and computing orbital elements. JD is used internally by every major ephemeris — the JPL DE series, the IAU SOFA library, and nearly every astronomical software package ever written.
JD days begin at noon, not midnight
The single most confusing thing about Julian Date for newcomers is that a JD day begins at noon UT, not midnight. JD 2451545.0 corresponds to noon on 2000-01-01, and JD 2451545.5 corresponds to midnight at the start of 2000-01-02. This convention dates from Scaliger's original scheme and is preserved because most astronomical observations are made at night, so the "day" of a JD integer number covers the entire night's observing session without a date break at midnight. When you need a Julian Date that starts at midnight instead, use the Modified Julian Date (MJD = JD − 2400000.5), which was introduced by the SAO in 1957 and is now the standard in geodesy, satellite tracking, and space mission planning.
The formula is one of many equivalent forms
The particular formula given here — JD = 367·Y − ⌊7·(Y + ⌊(M+9)/12⌋)/4⌋ + ⌊275·M/9⌋ + D + 1721013.5 — is a compact one-line expression valid for Gregorian dates from 1900 to 2099. It uses the identity that ⌊275·M/9⌋ gives the cumulative day count from the start of March (adjusted), and the term ⌊(M+9)/12⌋ is 0 for January–March and 1 for April–December, which shifts the leap-year boundary. The constant 1721013.5 is chosen so that the epoch 4713 BC 1 January falls at JD 0. Other formulations exist — Meeus' Algorithm 1, the classic Fliegel–Van Flandern algorithm, and the SOFA iauCal2jd routine — and they all give identical results for the same input date. The one here is optimised for compactness in a single line.
J2000.0 is the anchor of modern astronomy
Since the 1980s, virtually all astronomical coordinate systems, orbital elements, and time scales have been referenced to the epoch J2000.0, which is JD 2451545.0 — noon UT on 1 January 2000 in the Gregorian calendar. The "J" prefix indicates a Julian epoch (as opposed to the older "B1950.0" Besselian epoch). When you see positions quoted in the ICRS (International Celestial Reference System), they are positions at J2000.0, and the Julian century T = (JD − 2451545.0)/36525 is the standard time variable in all formulas for precession, nutation, and stellar proper motion. Understanding JD is therefore a prerequisite for every branch of modern positional astronomy.
How to Use This Calculator
The Julian Date calculator works in both directions. Pick the direction with the mode switch, fill in the inputs, and read the result.
1. Choose a direction
Use the mode switch to pick "Date → JD" (given a calendar date, compute the Julian Date) or "JD → Date" (given a Julian Date, recover the calendar date).
2. Use realistic presets
The Year slider spans 1900 to 2100 — the range where the given formula is exactly correct. Month and Day sliders use the familiar 1–12 and 1–31 ranges, and the Time slider spans 0 to 24 hours UT with a default of 12:00 UT (the J2000.0 reference).
3. Remember: JD days start at noon
Midnight UT on a given calendar date has JD ending in .5; noon UT has JD ending in .0. The date 2000-01-01 12:00 UT has JD exactly 2451545.0, but 2000-01-01 00:00 UT has JD 2451544.5 — half a day earlier.
4. Read the result and verdict
The result card shows the JD with six decimal places (about 0.09 seconds of time resolution), the calendar date and time, and the day of the week. A colour-coded badge highlights when your date coincides with a major astronomical epoch (J2000.0, J1900, J2100).
5. Check the timeline diagram
The diagram places your date on a linear timeline from J1900 to J2100, with ticks at every quarter-century. This makes it easy to see at a glance how far your date is from the standard astronomical reference epochs.
6. Switch to Advanced for depth
Advanced mode adds companion metrics (Modified Julian Date, Truncated Julian Date, Reduced Julian Date, Lilian Day Number, day-of-year, Julian century T from J2000.0), time-scale conversions (Unix epoch, Excel serial date, Rata Die, Hebrew, Islamic), and sensitivity metrics.
What This Tool Offers
Built around the classic Julian Date relation JD = 367·Y − ⌊7·(Y + ⌊(M+9)/12⌋)/4⌋ + ⌊275·M/9⌋ + D + 1721013.5.
Two-way calculation
Convert calendar dates to Julian Date and back. The reverse direction uses Meeus' standard algorithm and handles the Julian–Gregorian transition correctly.
Live epoch timeline
A 200-year timeline from J1900 to J2100 with epoch markers at every quarter-century and a live marker showing where your date falls.
Companion time scales
Modified Julian Date (MJD), Truncated Julian Date (TJD), Reduced Julian Date (RJD), Lilian Day Number, Unix epoch, Excel serial date, and Rata Die — all in one place.
Derived hints everywhere
Each field shows the value converted to related units — JD in MJD and TJD, UT as a decimal fraction, day-of-year, and day of the week in words.
Julian century and ephemeris time
Computes the Julian century T = (JD − 2451545.0)/36525 that is used as the time variable in precession, nutation, and orbital-mechanics formulas.
Reference tables
A timeline of famous Julian Dates (J1900, J2000, J2100, first Moon landing, Voyager launches, Halley's Comet), plus a full variable reference table.
Reference Tables & Conversions
A table of famous Julian Dates and a full variable reference for the Julian Date system.
Famous Julian Dates
| Event | Calendar date (UT) | Julian Date | Modified JD | Day of week |
|---|---|---|---|---|
| Gregorian calendar adopted | 1582-10-15 00:00 | 2299160.5 | −100840.0 | Friday |
| J1900.0 epoch | 1900-01-01 12:00 | 2415020.0 | 15019.5 | Monday |
| J1950.0 epoch | 1950-01-01 00:00 | 2433282.5 | 33282.0 | Sunday |
| Unix epoch | 1970-01-01 00:00 | 2440587.5 | 40587.0 | Thursday |
| J2000.0 epoch | 2000-01-01 12:00 | 2451545.0 | 51544.5 | Saturday |
| Voyager 1 launch | 1977-09-05 12:56 | 2443391.038 | 43390.538 | Monday |
| First Moon landing | 1969-07-20 20:17 | 2440423.345 | 40422.845 | Sunday |
| Hubble Space Telescope launch | 1990-04-24 12:33 | 2448005.023 | 48004.523 | Tuesday |
| Halley's Comet perihelion 1986 | 1986-02-09 00:00 | 2446470.5 | 46470.0 | Sunday |
| Great American Eclipse | 2017-08-21 18:26 | 2457987.268 | 57986.768 | Monday |
| J2050.0 epoch | 2050-01-01 00:00 | 2469807.5 | 69807.0 | Saturday |
| J2100.0 epoch | 2100-01-01 12:00 | 2488069.0 | 88068.5 | Friday |
Variable Reference
| Symbol | Meaning | Typical range | Units |
|---|---|---|---|
| JD | Julian Date | 2,400,000 – 2,500,000 | days |
| Y | Calendar year | 1900 – 2100 | CE |
| M | Month number | 1 – 12 | — |
| D | Day of month, with fractional time | 1 – 31 | days |
| ⌊ ⌋ | Floor function (round toward −∞) | — | — |
| MJD | Modified Julian Date, JD − 2400000.5 | 40,000 – 90,000 | days |
| TJD | Truncated Julian Date, JD − 2440000.5 | 10,000 – 50,000 | days |
| RJD | Reduced Julian Date, JD − 2400000 | 40,000 – 90,000 | days |
| T | Julian centuries from J2000.0 | −1 to +1 | centuries |
What Does the Julian Date Formula Measure?
The Julian Date formula connects four quantities that every astronomer works with: the calendar year, the month, the day of month, and the continuous day count (JD) that lies behind them. It answers a deceptively simple question — given a date on the civil calendar, what is the elapsed time in days since a fixed ancient epoch? — that turns out to be a foundational calculation in every branch of observational astronomy, satellite tracking, geodesy, and history.
The formula given here is one of the most compact forms of this conversion. It uses two floor functions — ⌊(M+9)/12⌋ and ⌊275·M/9⌋ — to fold the month into the year offset, plus a leap-year term ⌊7·(Y+a)/4⌋ that correctly accounts for the Gregorian leap-year rule. The final constant 1721013.5 anchors the result so that the epoch 1 January 4713 BC (Julian calendar) falls at JD 0, exactly as Scaliger originally intended.
The Julian Date Formula
The defining relationship is:
where Y is the year, M is the month (1–12), D is the day of month (with fractional part for time of day), and ⌊·⌋ is the floor function. The formula is valid for all Gregorian dates from 1900 to 2099. For dates outside that range, or for Julian calendar dates before 1582, a more general algorithm is needed.
The reverse direction — recovering the calendar date from a Julian Date — is given by the standard Meeus algorithm:
2. α = ⌊(Z − 1867216.25) / 36524.25⌋; A = Z + 1 + α − ⌊α/4⌋ (if Z ≥ 2299161, else A = Z)
3. B = A + 1524
4. C = ⌊(B − 122.1) / 365.25⌋
5. D = ⌊365.25 · C⌋
6. E = ⌊(B − D) / 30.6001⌋
7. Day = B − D − ⌊30.6001·E⌋ + F
8. Month = E − 1 (if E < 14), else E − 13
9. Year = C − 4716 (if Month > 2), else C − 4715
Related quantities that follow directly from the Julian Date:
Truncated Julian Date: TJD = JD − 2440000.5
Reduced Julian Date: RJD = JD − 2400000
Julian century from J2000.0: T = (JD − 2451545.0) / 36525
Day of week: DoW = (⌊JD + 0.5⌋ + 1) mod 7 (0 = Sunday)
Julian Date Variables
| Symbol | Meaning | Notes |
|---|---|---|
| JD | Julian Date | Continuous day count since 4713 BC 1 January (Julian proleptic) |
| Y, M, D | Calendar year, month, day of month | Gregorian calendar for dates after 1582-10-15 |
| MJD | Modified Julian Date | JD − 2400000.5; used in geodesy and satellite tracking |
| TJD | Truncated Julian Date | JD − 2440000.5; used by NASA and some FITS headers |
| RJD | Reduced Julian Date | JD − 2400000; keeps the integer part stable for a century |
| T | Julian century from J2000.0 | (JD − 2451545.0)/36525; the time variable in astrometry |
How Each Variable Affects the Julian Date
The Julian Date increases linearly with the year, but with a small correction for leap years. Every calendar year contributes 365 days to the JD; every leap year contributes 366. The formula encodes this through the term ⌊7·(Y+a)/4⌋, which counts the number of leap days between the anchor epoch and the target year. Because Gregorian leap years follow the rule (divisible by 4, except centuries not divisible by 400), this term is exact for all dates from 1583 to 2099 — a window wide enough for all practical purposes.
The month term ⌊275·M/9⌋ is a clever encoding of the cumulative day count from the start of the year, assuming that the year begins on 1 March. This is because the leap day (29 February) would otherwise fall in the middle of the year and complicate the arithmetic. By shifting the "start of year" to March, the extra day becomes the last day of the year, and the cumulative day count can be expressed as a simple floor function of the month. The (M+9)/12 term in the year anchor performs the same shift: for M = 1–3 (January–March) it evaluates to 0, keeping the year unchanged; for M = 4–12 it evaluates to 1, effectively subtracting one from the year so the leap-day arithmetic works out.
The final constant 1721013.5 places the J2000.0 epoch at JD 2451545.0, which is the modern standard. The 0.5 offset ensures that a JD ending in .5 corresponds to midnight UT, and a JD ending in .0 corresponds to noon UT — a convention inherited from the original 19th-century definitions of the Julian Day.
In practice, the Julian Date is almost always used as a difference, not as an absolute value. The difference JD₁ − JD₂ gives the elapsed time in days between two events, and this difference is invariant under any offset in the JD itself. This is why the choice of MJD, TJD, or RJD — all of which are JD minus a large constant — makes no difference for many applications: only the fractional day and the relative position matter. The absolute value matters only when the date needs to be human-readable, or when it is used in an ephemeris formula that expects an unshifted JD.
Julian Date Calculation Examples
a = ⌊(1+9)/12⌋ = 0
b = ⌊7·(2000+0)/4⌋ = 3500
c = ⌊275·1/9⌋ = 30
JD = 367·2000 − 3500 + 30 + 1.5 + 1721013.5 = 2451545.0
a = ⌊(3+9)/12⌋ = 1
b = ⌊7·(2024+1)/4⌋ = 3543
c = ⌊275·3/9⌋ = 91
JD = 367·2024 − 3543 + 91 + 20.5 + 1721013.5 = 2460390.0
a = ⌊(7+9)/12⌋ = 1
b = ⌊7·(1969+1)/4⌋ = 3447
c = ⌊275·7/9⌋ = 213
D = 20 + 20/24 + 17/1440 = 20.8472
JD = 367·1969 − 3447 + 213 + 20.8472 + 1721013.5 = 2440423.347
Using Meeus' algorithm: Z = 2451545, F = 0.5
A = 2451558, B = 2453082, C = 6715, D = 2452653, E = 14
Day = 1.5, Month = 1, Year = 2000 → 2000-01-01 12:00 UT
DoW = (⌊2440587.5 + 0.5⌋ + 1) mod 7 = (2440588 + 1) mod 7 = 4 = Thursday
2024-03-20 12:00 UT (JD 2460390.0) − 2000-01-01 12:00 UT (JD 2451545.0)
= 8845 days = 24.22 years
Frequently Asked Questions
The Julian Date is a continuous day count used in astronomy to avoid the complications of calendar arithmetic. It counts days — with fractional parts — from a fixed reference point at noon UT on 1 January 4713 BC (in the Julian proleptic calendar). JD 0.0 corresponds to that epoch; JD 2451545.0 corresponds to noon UT on 1 January 2000. Because the count is continuous, subtracting two Julian Dates directly gives the elapsed time in days, with no need to worry about leap years, different month lengths, or the transition from the Julian to the Gregorian calendar. It was invented by Joseph Scaliger in 1583 and named (a little confusingly) after his father Julius, not after the Julian calendar.
The noon start is a historical convention inherited from Scaliger's original scheme and reinforced by the practical needs of 18th- and 19th-century astronomers. Most astronomical observations are made at night, so if the JD day began at midnight, an observing session that ran from sunset to sunrise would span two different JD dates. Starting the day at noon means an entire night is covered by a single JD integer number, which makes bookkeeping easier. The convention is preserved to this day for compatibility with the entire historical record of published Julian Dates — changing it would break every ephemeris and every archived observation. If the noon start is inconvenient, use the Modified Julian Date (MJD = JD − 2400000.5), which starts at midnight and is now preferred in geodesy and satellite tracking.
No — the compact formula given here is exact for Gregorian calendar dates in the range 1900 to 2099. Outside this range, additional terms are needed to handle the Julian-to-Gregorian calendar transition (which occurred in October 1582 in Catholic Europe, but at different dates in different countries), and to handle the slightly different leap-year rule of the Julian calendar (every 4 years, without exception). The standard Meeus algorithm — which the reverse direction of this calculator uses — handles the full range of dates from 1 March 1900 backwards to 1 March 1900 BC, and forward indefinitely into the future, using a conditional branch at Z = 2299161 (the JD at the Gregorian reform) to switch between calendars. For any practical astronomical purpose, the years 1900–2100 cover 99.99% of useful dates, so the compact formula is perfectly adequate.
All four are linear day counts that differ only by a large additive constant. JD itself is the canonical number, but its value near 2.4 million is inconvenient for most practical uses. Modified Julian Date (MJD = JD − 2400000.5) starts at midnight instead of noon and was introduced by the Smithsonian Astrophysical Observatory in 1957; it is now the standard in geodesy, GNSS, and satellite tracking. Truncated Julian Date (TJD = JD − 2440000.5) is used by some NASA mission planning tools and by the FITS header standard for its compact integer range. Reduced Julian Date (RJD = JD − 2400000) keeps the integer part stable for a full century, which simplifies bookkeeping. All four are trivially convertible from one another, and their differences are simply the additive constants — the fractional part is identical across all of them.
J2000.0 is the astronomical reference epoch adopted by the International Astronomical Union in 1984, replacing the older B1950.0 Besselian epoch. It corresponds to JD 2451545.0, which is noon UT on 1 January 2000. Every modern astronomical catalogue — from the Hipparcos and Gaia star catalogues to the ICRS itself — quotes positions at J2000.0, and every formula in astrometry and celestial mechanics uses the Julian century T = (JD − 2451545.0)/36525 as its time variable. When you see a star position quoted as "RA 12h34m56.7s, Dec +12°34′56″", it is a position at J2000.0; to observe it tonight, you must precess it from J2000.0 to the current epoch of date, which requires knowing the Julian Date of your observing session. Without JD and J2000.0, precise pointing of modern telescopes would be impossible.
The JD is mathematically exact — it is a real number with infinite precision. What varies is the accuracy of the input date. When you specify a calendar date and time to the second, the JD is accurate to 1 second, which corresponds to about 1.16 × 10⁻⁵ days. With 6 decimal places (as displayed here), the JD resolution is about 0.087 seconds. The limiting factor is not the formula but the input: leap seconds in UTC, the difference between UT1 and UTC, and the ~0.1 second precision of human-recorded times all introduce their own errors. For sub-second precision in modern astronomy, use UTC as the input and remember that the difference TT − UTC is currently about 69 seconds — enough to shift the JD by about 8 × 10⁻⁴ days.
The floor functions implement integer arithmetic on values that would otherwise be fractional. The term ⌊7·(Y+a)/4⌋ counts the number of leap days between the anchor epoch and the target year, but only integer leap days make sense. The term ⌊275·M/9⌋ gives the cumulative day count from the start of the "astronomical year" (which begins on 1 March in this convention), and again only integer days matter. Using floor (rather than round or truncate) ensures consistent behaviour for negative values, which is important when the formula is extended to dates before the epoch. The floor function is standard in computing and is directly available in JavaScript as Math.floor().
By definition, JD 0.0 corresponds to noon UT on Monday, 1 January 4713 BC in the proleptic Julian calendar (which is not the same as the historical Julian calendar in use before 45 BC). This date was chosen by Scaliger in 1583 because it was the most recent time when three calendar cycles coincided: the 28-year solar cycle, the 19-year Metonic lunar cycle, and the 15-year Roman indiction cycle. The product of these three cycles is 7980 years, defining the Julian Period that Scaliger intended to be the framework for all historical chronology. Negative Julian Dates are mathematically well-defined, but they are rarely used because the proleptic Gregorian calendar is not defined before 1 March 1900 BC in astronomical convention.
Variables
| Symbol | Quantity | Unit |
|---|---|---|
| JD | Julian Date | days |
| Y | Year | |
| M | Month | |
| D | Day of month |
What it means
The Julian Date (JD) is a continuous counting of days starting from noon on January 1, 4713 BC (proleptic Julian calendar). This formula gives an approximate conversion from a given date (year Y, month M, day D) to JD. It is widely used in astronomy and navigation to avoid complications of leap years, time zones, and calendar reform. It allows easy calculation of time intervals between astronomical events. The simplified form is accurate for dates after 1900. Modified Julian Date (MJD = JD − 2400000.5) is also common. Understanding this calculation is essential for observational astronomy, ephemeris generation, and historical astronomy to precisely define the timing of events.
Worked example
Julian Date (Simplified) – Two Detailed Examples
Real‑World| Parameter | Value |
|---|---|
| Y | 2024 |
| M | 1 |
| D | 1 |
| Parameter | Value |
|---|---|
| Y | 2030 |
| M | 12 |
| D | 25 |
Common mistakes
- Julian Date: Number of days since noon UTC on 1 January 4713 BC (Julian calendar).
- Formula: Uses integer division (INT) – ensure you floor values correctly.
- Time of day: The formula given is for 0h UT (midnight) – add fractional day for other times.
- Gregorian vs. Julian calendar: This is for the Gregorian calendar – for Julian, use a different formula.
- Accuracy: This is a simplified version – for full precision, use the Meeus algorithm.
Applications
The Julian Date (JD) provides a continuous count of days since noon on January 1, 4713 BCE (proleptic Julian calendar). It is widely used in astronomy for timing observations, calculating orbital periods, and synchronising data. The simplified formula given here computes JD from year, month, and day. Astronomers use JD to eliminate the complexities of calendar systems and time zones, enabling precise time comparisons across centuries. It is also the basis for Modified Julian Date (MJD) used in many catalogs. By using JD, researchers can accurately predict celestial events, schedule telescope observations, and reduce observational data. Understanding JD is essential for astronomical data reduction and archival work.
- Time‑stamping astronomical observations and events
- Calculation of orbital elements and ephemerides
- Scheduling of telescope observations and satellite passes
- Converting between calendar dates and day‑count systems
- Database indexing and archival data organisation
Related calculators · Orbital Mechanics
Recently updated formulas
Suggest an improvement
Found a mistake? Have a better example? Let us know.
You may send up to 3 suggestions per 24 hours.