Skip to main content

A complete Martian Calendar package

Project description

EXODUS CALENDAR FOR MARS

Revision 2025.08.28

INTRODUCTION

An accurate and user-friendly Martian calendar would be invaluable for future Martian colonists, yet no commonly accepted system exists today. Current proposals, such as the Darian calendar [1], may appear overly complex and demand memorization of numerous unfamiliar terms. The ideal Martian calendar should combine both accuracy and simplicity, retaining familiar month and weekday names. Additionally, maintaining some degree of backwards compatibility with existing Martian timekeeping solutions would be highly beneficial.

DEFINITIONS

  • The duration of Martian solar day (“sol”), that is, the time for the plane to rotate around its axis with respect to the Sun is currently 24 hours 39 minutes and 35.244 seconds (88775.244 seconds, equal to 1.02749125 Earth solar days)

  • The duration of Martian tropical year (orbital period with respect to the Sun) is 668.5921 sols, but for the planetary calendar purposes, time between vernal equinoxes is often used, as in Gregorian calendar, allowing more close alignment with seasons of the year. In Mars case, this value is equal to 668.5907 sols [1, p. 3]

DESCRIPTION

I propose the following scheme:

Using the northward equinox year (668.5907 sols) as the reference year length, this calendar operates on a 22-year cycle:

  • Ten 668-sol years (even-numbered years: second, fourth, sixth, etc.)
  • Eleven 669-sol years (odd-numbered years: first, third, fifth, etc.)
  • One 670-sol year (leap year)

In one sentence, rephrased: odd years are 669 sols, even years are 668 sols except when divisible by 22, then they are 670 sol long.

Each year comprises 12 months bearing the same names as their terrestrial counterparts, with each containing 56 sols except December, which varies in length: 52, 53, or 54 sols. Weeks maintain the familiar seven-day structure with Earth’s weekday names (Monday, Tuesday, etc.), and each month contains exactly eight weeks. All months begin on Monday and conclude on Sunday, with only December's final week ending on Wednesday, Thursday, or Friday, depending on the year's length. Every new year begins on Monday.

martian calendar

This concept requires minimal new information to memorize: essentially just the 22-year cycle structure and two month lengths: one constant and one dependent on the year's position within the cycle.

EPOCH

The epoch date and time is provisionally set to Mars vernal equinox of April 11, 1955, at UTC 19:21:51 to keep the calendar aligned with planetary seasons and in sync with MST (Mean Solar Time). Years are counted from 1, and negative years start from -1, as in Gregorian calendar (i.e. there is no year 0).

Calendar epoch structure

ACCURACY

Calendar Year Length=(668 x 10 + 669 x 11 + 670)/22

This yields an average calendar year duration of 668.5909(09) sols, creating a naive error estimate of 0.00021 sols per year, comparable to the Gregorian calendar's 0.00013-day annual discrepancy. If no other factors take into account, such a system would remain reasonably accurate for the foreseeable future, accumulating an error of only 1 sol after approximately 4,782 Martian years, assuming fixed duration of Mars northward equinox year. But as the Martian year length is known to drift (+0.00079 sols per 1,000 Martian years [1, p3]), more accurate error expression that includes annual duration drift can be expressed as following:

$$ Accumulated\ Error(sols) = \int_0^t \left(\frac{668 \times 10 + 669 \times 11 + 670}{22} - (668.5907 + 0.00079t/1000)\right) dt $$

Solving for t, error expression becomes:

$$ 2.1 \times 10^{-4}𝑡 - 3.95 \times 10^{-7}𝑡^2 $$

So 1 sol error will accumulate in 1878 Martian years (approximately 3532 Earth ones), illustrated below:

error chart

SOURCE CODE

Packaged into library that is available on PyPi: https://pypi.org/project/exodus-calendar/

Additionally, a simple command-line utility that allows conversions between terrestrial (UTC) and Martian (in MTC) dates ("exodus.py") and accuracy test code ("accuracy.py") are available on Github: https://github.com/DarkStar1982/exodus_calendar/

INSTALLATION

Install 'exodus-calendar' from from PyPi, use latest version. Tested for Python 3.10-3.13

USAGE

Functions of value are in exodus_orbitals.utils:

  • earth_datetime_to_mars_datetime(input_date, mars_sec_on). Converts timestamp in UTC to Martian date time.

  • mars_datetime_to_earth_datetime_as_isoformat(input_date, mars_sec_on) Converts Martian timestamp to Earth one in UTC as datetime object

  • mars_datetime_to_earth_datetime_as_string(input_date, mars_sec_on) Converts Martian timestamp to Earth one in UTC as string

  • mars_datetime_to_earth_datetime_as_ms(input_date, mars_sec_on) Converts Martian timestamp to Earth one as milliseconds since calendar epoch (not Unix epoch!)

  • compute_mars_timedelta(date_a, date_b, mars_sec_on) Computes time delta in milliseconds between two Martian dates. Returns date_b - date_a

  • add_timedelta_to_mars_date(date, millis, mars_sec_on) Adds time delta in millisecond to a Martian date. Returns Martian date.

"mars_sec_on" parameter allows to use either standard second (1000 ms) when False or Martian second (1027.5 ms) when True for more convienient 24-hour timekeeping. When used, the time returned will be in sync with (unofficial) MTC timezone - time at zero Martian meridian, Mars equivalent to UTC. Set to False by default.

SUPPORT PROJECT DEVELOPMENT

https://www.paypal.com/paypalme/DenysSilin

SUBSCRIBE TO AUTHOR'S YOUTUBE CHANNEL

https://www.youtube.com/@exodusorbitals4092

REFERENCES

  1. Gangale, Thomas. (2006). The Architecture of Time, Part 2: The Darian System for Mars. SAE Technical Papers. 10.4271/2006-01-2249.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

exodus_calendar-0.99.1.4.tar.gz (22.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

exodus_calendar-0.99.1.4-py3-none-any.whl (19.8 kB view details)

Uploaded Python 3

File details

Details for the file exodus_calendar-0.99.1.4.tar.gz.

File metadata

  • Download URL: exodus_calendar-0.99.1.4.tar.gz
  • Upload date:
  • Size: 22.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for exodus_calendar-0.99.1.4.tar.gz
Algorithm Hash digest
SHA256 6e95415a776aa0a621aba5c736f8d67047a57e9893cf1ccc78fee59f0046ff46
MD5 de0af4afa81a28b8c41d8e0ab7333d0c
BLAKE2b-256 5f1331e864b7069d7b1f6440e30fb4f34eb0e839869a5ed755f8f576c154a6cd

See more details on using hashes here.

File details

Details for the file exodus_calendar-0.99.1.4-py3-none-any.whl.

File metadata

File hashes

Hashes for exodus_calendar-0.99.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 517cb96fd9cfcccfd49d88f50785d4743a0a7b79b6d5ed696d0b24cbb8f78707
MD5 d72c217b3243c1f1259daf033a29880f
BLAKE2b-256 e2b2de38627282b7e9874bc3f99be7c9e7f376d31c5b8fbc1c22c6bf2379d8f6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page