Mars24 Sunclock — Time on Mars

Algorithm and Worked Examples

The calculations made by Mars24 to determine the time for a given location on Mars are primarily based on Allison and McEwen (2000, henceforth AM2000). We also refer to Allison (1997, henceforth A1997), of which AM2000 was a thorough update. However, some typographical errors appeared in the published version of AM2000, and some calculations have been revised since that paper was published because of the availability of new data. Various revisions were described in a unpublished paper by Allison & Ferrier, as well as in some later, unpublished calculations by Allison.

Consequently, we provide here step-by-step documentation of the equations currently employed by Mars24 for users who wish to implement their own Mars timekeeping applications that match the result of the app. At the end of this presentation, we also provide worked examples for verification of intermediate results.

I. Equations

A. Determine Days Since J2000 Epoch

Our Mars time calculations will use the parameter ΔtJ2000, the elapsed time in days since the J2000 epoch, i.e., 12:00 on Jan. 1, 2000 (TT). The following describes how we get there from a Java call which returns the system time. If one has an alternative scheme for obtaining ΔtJ2000, then these steps can be skipped.

A-1. Get a starting Earth time.

Mars24 is written in Java, so we use the System.currentTimeMillis() method to find out the number of milliseconds, millis, that have elapsed since 00:00:00 on Jan. 1, 1970 (i.e., the Unix epoch).

Unfortunately, the standard Java date/time classes do not keep track of leap seconds, i.e., they keep time in UT rather than UTC. Consequently, when Mars24 calls System.currentTimeMillis(), it expects that the value returned uses UT rather than UTC.

Only A-2 in the following steps explicitly uses millis. However, there are some displays in Mars24 which also use other readings based on the value of millis, so there is a possibility that if Mars24 is used on a computer and Java implementation which do keep track of leap seconds, display errors could result.

A-2. Convert millis to Julian Date (UT).

Although there's plenty of sample code available on-line that demonstrates how to convert a Gregorian calendar date to a Julian Date, we simply use the offset from a known, recent Julian Date. Again, we use the Unix epoch, 00:00:00 on Jan. 1, 1970.

JDUT = 2440587.5 + (millis / 8.64×107 ms/day)

A-3. Determine time offset from J2000 epoch (UT).

This step is optional; we only need to make this calculation if the date is before Jan. 1, 1972. Determine the elapsed time in Julian centuries since 12:00 on Jan. 1, 2000 (UT).

T = (JDUT - 2451545.0) / 36525.

A-4. Determine UTC to TT conversion. (Replaces AM2000, eq. 27)

Terrestrial Time (TT) advances at constant rate, as does UTC, but no leap seconds are inserted into it and so it gradually gets further ahead of UTC. The best way to determine the difference between TT and UTC is to consult a table of leap seconds. Alternatively, one could try to use an empirical formula.

In Mars24 we, oddly enough, use both methods. We use the USNO table for dates after Jan. 1, 1972, and a formula for dates prior to then. In consulting the USNO table>, however, it is important to note that the table provides values for the TAI-UTC difference, where TAI is International Atomic Time. To obtain the TT-UTC difference, add 32.184 seconds to the value of TAI-UTC. For example, the USNO table indicates that on Jan. 1, 2017, the TAI-UTC value is 37.0 seconds, and thus, the value for TT-UTC on that date (and until the next date on which another leap second is added to the clock) would be 37.0s + 32.184s = 69.184s.

The formula applied for dates prior to Jan. 1, 1972, is similar to AM2000, eq. 27, but has been revised and includes additional terms:

TT - UTC = 64.184s + 59 s × T - 51.2 s × T2 - 67.1 s × T3 - 16.4 s × T4

(Note: Mars24 accounts for the leap second added January 1, 2017. It does not allow for any leap seconds that may have been subsequently added. But Bulletin C 33 from the IERS Earth Orientation Centre indicates this will not occur any earlier than June 1, 2021.)

A-5. Determine Julian Date (TT).

JDTT = JDUT + [(TT - UTC) / 86400 s·day-1]

A-6. Determine time offset from J2000 epoch (TT). (AM2000, eq. 15)

ΔtJ2000 = JDTT - 2451545.0

B. Determine Mars Parameters of Date

Now we turn our attention to Mars, first determining some orbital parameters.

B-1. Determine Mars mean anomaly. (AM2000, eq. 16)

M = 19.3871° + 0.52402073° ΔtJ2000

B-2. Determine angle of Fiction Mean Sun. (AM2000, eq. 17)

αFMS = 270.3871° + 0.524038496° ΔtJ2000

B-3. Determine perturbers. (AM2000, eq. 18)

PBS = Σ(i=1,7) Ai cos [ (0.985626° ΔtJ2000 / τi) + φi]

where 0.985626° = 360° / 365.25, and

i Ai τi φi
1 0.0071 2.2353 49.409
2 0.0057 2.7543 168.173
3 0.0039 1.1177 191.837
4 0.0037 15.7866 21.736
5 0.0021 2.1354 15.704
6 0.0020 2.4694 95.528
7 0.0018 32.8493 49.095

B-4. Determine Equation of Center. (Bracketed term in AM2000, eqs. 19 and 20)

The equation of center is the true anomaly minus mean anomaly.

ν - M = (10.691° + 3.0° × 10-7 ΔtJ2000) sin M + 0.623° sin 2M + 0.050° sin 3M + 0.005° sin 4M + 0.0005° sin 5M + PBS

B-5. Determine areocentric solar longitude. (AM2000, eq. 19)

Ls = αFMS + (ν - M)

C. Determine Mars Time

C-1. Determine Equation of Time. (AM2000, eq. 20)

EOT = 2.861° sin 2Ls - 0.071° sin 4Ls + 0.002° sin 6Ls - (ν - M)

The above result for EOT is in degrees. Multiply by (24 h / 360°) = (1 h / 15°) to obtain the result in hours.

C-2. Determine Mean Solar Time at Mars's prime meridian, i.e., Airy Mean Time. (AM2000, eq. 22, modified)

This is the mean solar time at Mars's prime meridian.

MST = mod24 { 24 h × ( [(JDTT - 2451549.5) / 1.0274912517] + 44796.0 - 0.0009626 ) }

The function modX indicates a re-setting of the function parameter, a cyclical value, to a value between 0 and X. In this case, we apply mod24 to indicate that values outside the range 0-24 should be re-set to be within that range, e.g., mod24 (30) = 6.

C-3. Determine Local Mean Solar Time.

The Local Mean Solar Time for a given planetographic longitude, Λ, in degrees west, is easily determined by offsetting from the mean solar time on the prime meridian.

LMST = mod24 { MST - Λ (24 h / 360°) } = mod24 { MST - Λ (1 h / 15°) }

C-4. Determine Local True Solar Time. (AM2000, eq. 23)

LTST = LMST + EOT (24 h / 360°) = LMST + EOT (1 h / 15°)

C-5. Determine subsolar longitude

Λs = MST (360° / 24 h) + EOT + 180° = MST (15° / h) + EOT + 180°

D. Additional Calculations

D-1. Determine solar declination (planetographic). (A1997, eq. 5)

δs = arcsin {0.42565 sin Ls)} + 0.25° sin Ls

D-2. Determine heliocentric distance. (AM2000, eq. 25, corrected)

RM = 1.52367934 × (1.00436 - 0.09309 cos M - 0.004336 cos 2M - 0.00031 cos 3M - 0.00003 cos 4M)

D-3. Determine heliocentric longitude. (AM2000, eq. 26)

lM = Ls + 85.061° - 0.015° sin (71° + 2Ls) - 5.5°×10-6 ΔtJ2000

D-4. Determine heliocentric latitude.

bM = -(1.8497° - 2.23°×10-5 ΔtJ2000) sin (Ls - 144.50° + 2.57°×10-6 ΔtJ2000)

D-5. Determine local solar elevation

For any given point on Mars's surface, we want to determine the angle of the sun. The zenith angle is:

Z = arccos (sin δs sin φ + cos δs cos φ cos H)

where φ is the planetographic latitude, Λ is the planetographic longitude, and H the hour angle, Λ - Λs.

The solar elevation is simply 90° - Z.

D-6. Determine local solar azimuth

The second element of the sun's location as seen from a point on Mars's surface is its azimuth, i.e., compass angle relative to due north.

A = arctan (sin H / (cos φ tan δs - sin φ cos H))

(Note: When applying this equation in your computer code or spreadsheet, use the atan2 function so that the correct quadrant is obtained.)

II. Worked Examples

Near Coincident Earth and Mars Times

An easy-to-remember benchmark for calibrating clocks is a date and time at which the "standard time" for both Mars and Earth was almost the same. When the time on Earth was 00:00:00 on Jan. 6, 2000 (UTC), it was just 21 Mars-seconds away from also being mean midnight at the Mars prime meridian. Let's run through the calculations to see if we obtain MST = 23:59:39. For longitude and latitude, we specify 0°W 0°N.

Eq. Parameter Value
A-1 millis 947116800000 ms
A-2 JDUT 2451549.5
A-3 T
A-4 TT - UTC 64.184 s
A-5 JDTT 2451549.50074
A-6 ΔtJ2000 4.50074
B-1 M 21.74558°
B-2 αFMS 272.74566°
B-3 PBS 0.00142°
B-4 ν - M 4.44193°
B-5 Ls 277.18758°
C-1 EOT -5.18774° = -0.34585 h = -00:20:45
C-2 MST mod24 (1075103.99425 h) = 23.99425 h = 23:59:39
C-3 LMST 23.99425 h = 23:59:39
C-4 LTST 23.64840 h = 23:38:54
C-5 Λs 174.72600°
D-1 δs -25.22825°
D-2 RM 1.39358 AU
D-3 lM 2.26352°
D-4 bM -1.35957°
D-5 Z 154.26182°
D-6 A 191.03905°

MER-A Spirit Landing

The Mars Exploration Rover A, Spirit, landed on Jan. 4, 2004 (UTC; in U.S. timezones it was late Jan. 3). For the planned landing target, local true midnight prior to touchdown was expected at 13:46:31 UTC on Jan. 3. We specify longitude and latitude of 184.702°W -14.640°N. We expect to obtain that the Mars local time at that location was LTST = 00:00:00 and the solar azimuth was 180°.

Eq. Parameter Value
A-1 millis 1073137591000 ms
A-2 JDUT 2453008.07397
A-3 T
A-4 TT - UTC 64.184 s
A-5 JDTT 2453008.07471
A-6 ΔtJ2000 1463.07471
B-1 M 786.06858° → 66.06858°
B-2 αFMS 1037.09457° → 317.09457°
B-3 PBS 0.01614°
B-4 ν - M 10.22959°
B-5 Ls 1047.32416° → 327.32416°
C-1 EOT -12.77553° = -0.85170 h = -00:51:06
C-2 MST mod24 (1109173.16537 h) = 13.16537 h = 13:09:55
C-3 LMST 0.85190 h = 00:51:07
C-4 LTST 0.00025 h = 00:00:00
C-5 Λs 4.70500°
D-1 δs -13.42065°
D-2 RM 1.47767 AU
D-3 lM 52.37564°
D-4 bM 0.08965°
D-5 Z 151.93895°
D-6 A 179.99383°


Discussion of the data and formulae used by Mars24 may be found in:

Return to Mars24 Help Index

Go to Mars24 Website