Skip to main content

Temporal Moon timekeeping

Project description

MoonTime

MoonTime is a temporal system designed to translate human time into something older, quieter, and a little less linear.

It began with a simple problem:

If someone says “by the next moon”… how long is that, exactly?

MoonTime answers that by mapping any moment into a lunar-aware calendar, where phases, cycles, and celestial relationships shape the flow of time.


🌙 Features

  • 🌗 Real-time lunar phase and illumination

  • 🌌 Continuous lunar calendar (year, month, day)

  • 🧭 Seasonal awareness

  • 🕰️ Human-readable + machine-friendly formatting

  • 🔁 Conversion from:

    • datetime
    • CLI input
  • 🖥️ Command-line interface with planetary time modes


📦 Installation

pip install moontime

🚀 Quick Example

from moontime import MoonTime as mt

def example():

    moon = mt.now()  # Pull this moment 

    # Basic data on the moment:
    print("Readout", moon)
    print("Season:", moon.season)
    print("Moon Phase:", moon.phase)
    print("Moon illumination:", moon.illumination)
    print("Moon angle:", moon.angle)
    print("Lunar year:", moon.year)
    print("Lunar month:", moon.month)
    print("Lunar day:", moon.day)
    print("Name of the month:", moon.lunar_month_name)
    print("Day of the week:", moon.lunar_weekday)

    # Functions:
    if moon.is_day:
        print("Is day:", "true")
    else:
        print("Is day:", "false")

    print("strftime:", moon.strftime('%Y%m%d%H%M%S'))


if __name__ == "__main__":
    example()

Example Output

Readout 6739-02-05 10:52:54.724282
Season: Spring
Moon Phase: First Quarter
Moon illumination: 42
Moon angle: 81.2754265988915
Lunar year: 6739
Lunar month: 2
Lunar day: 5
Name of the month: Umbra
Day of the week: Nycturia
Is day: false
strftime: 67390205105254

🧭 Core Concepts

MoonTime Object

moon = mt.now()

Represents a single moment translated into the MoonTime system.


Lunar Calendar

Each moment includes:

  • Year → Continuous count (not tied to Gregorian)
  • Month → Lunar cycle index
  • Day → Position within the cycle
  • Month Name → Symbolic naming (e.g. Umbra)
  • Weekday → Custom lunar week system

Phase & Illumination

moon.phase
moon.illumination
  • Phase: textual description (e.g. First Quarter)
  • Illumination: percentage of visible moon

Angle

moon.angle

Angular relationship between the Moon and the Sun.

This is the underlying value that determines phase.


Day / Night

moon.is_day

Boolean indicating whether the sun is above the horizon.


Formatting

moon.strftime('%Y%m%d%H%M%S')

Works similarly to standard datetime.strftime, but uses MoonTime values.


⏳ Conversions

From datetime

from datetime import datetime, timezone

mt.from_datetime(datetime.now(timezone.utc))

Current Moment

mt.now()

🖥️ CLI Usage

MoonTime includes a command-line interface for quick queries.

Current Time

moontime now
6739-02-05 10:41:06.718833

Specific Date

moontime at 2025-05-12
6738-02-13 07:23:37.032349
moontime at 2025-05-01T12:34:56
6738-02-02 19:37:30.418148

Solar / Planetary Temporal Time Modes

moontime now --sun-time
dYO - 6739-02-05 10:41:51.168
moontime now --mars-time
Ma↓ 04:07:19
moontime now --planet-time moon
L↓ 04:55:46

These modes expose alternative time flows based on planetary cycles.


🧬 Design Philosophy

MoonTime is built to be:

  • Continuous → No hard resets or calendar discontinuities
  • Interoperable → Works alongside standard datetime
  • Expressive → Carries meaning beyond raw timestamps
  • Deterministic → Same input always yields the same moment

🌌 Ecosystem

MoonTime serves as the temporal foundation for:

  • aetherfield → planetary positions and alignments
  • Other systems that require lunar-aware timing

🧪 Status

Early release. Core behavior is stable, but naming systems and extended features may evolve.


🕯️ Closing Note

MoonTime does not replace standard time.

It runs alongside it.

A second clock — one that keeps track of cycles instead of seconds, and makes sense of promises like:

“by the next moon.”

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

moontime-0.4.5.tar.gz (24.5 kB view details)

Uploaded Source

Built Distribution

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

moontime-0.4.5-py3-none-any.whl (22.7 kB view details)

Uploaded Python 3

File details

Details for the file moontime-0.4.5.tar.gz.

File metadata

  • Download URL: moontime-0.4.5.tar.gz
  • Upload date:
  • Size: 24.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.4

File hashes

Hashes for moontime-0.4.5.tar.gz
Algorithm Hash digest
SHA256 1e6cfddd0adeb38e301890ad329f4a4de02000ad772ec0c999a5a58c59959436
MD5 e8fbab029f953b5964d6e7acf3a155eb
BLAKE2b-256 5cfa0e85fb4b4959a42eaa1780ba2e868f7d4ab9c2e0aaa8f51957a84d7dd7b5

See more details on using hashes here.

File details

Details for the file moontime-0.4.5-py3-none-any.whl.

File metadata

  • Download URL: moontime-0.4.5-py3-none-any.whl
  • Upload date:
  • Size: 22.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.4

File hashes

Hashes for moontime-0.4.5-py3-none-any.whl
Algorithm Hash digest
SHA256 dbf0af1a4c75575c8a9bed4881ae49c2d374827ca93a783e92368ae75f30e892
MD5 40246c68b967e94ae784ec3cc77dcfc0
BLAKE2b-256 8c009c3e67c3187989b2a5cab0f6833577f246a52039ee1c9f3ea9e830e360d5

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