{"id":22394281,"url":"https://github.com/qrichert/moontool","last_synced_at":"2025-07-31T10:32:34.550Z","repository":{"id":137800334,"uuid":"532251903","full_name":"qrichert/moontool","owner":"qrichert","description":"John Walker's `moontool.c` astronomical calculation routines, extracted (with port to Rust \u0026 Python).","archived":false,"fork":false,"pushed_at":"2025-05-16T16:57:46.000Z","size":502,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-14T19:56:58.196Z","etag":null,"topics":["c","cli","moon","python","rust","rust-library"],"latest_commit_sha":null,"homepage":"https://docs.rs/moontool","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"0bsd","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/qrichert.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-09-03T12:20:36.000Z","updated_at":"2025-06-09T20:46:42.000Z","dependencies_parsed_at":"2024-04-09T19:48:50.235Z","dependency_job_id":"05b7d26b-27ae-417e-a57f-276ae90fbd5f","html_url":"https://github.com/qrichert/moontool","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/qrichert/moontool","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qrichert%2Fmoontool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qrichert%2Fmoontool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qrichert%2Fmoontool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qrichert%2Fmoontool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/qrichert","download_url":"https://codeload.github.com/qrichert/moontool/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/qrichert%2Fmoontool/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268024610,"owners_count":24183149,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-31T02:00:08.723Z","response_time":66,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c","cli","moon","python","rust","rust-library"],"created_at":"2024-12-05T05:09:36.641Z","updated_at":"2025-07-31T10:32:34.537Z","avatar_url":"https://github.com/qrichert.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Moontool\n\n[![license: 0BSD](https://img.shields.io/badge/license-0BSD-blue)](https://opensource.org/license/0BSD)\n![GitHub Tag](https://img.shields.io/github/v/tag/qrichert/moontool?sort=semver\u0026filter=*.*.*\u0026label=release)\n[![tokei (loc)](https://tokei.rs/b1/github/qrichert/moontool?label=loc\u0026type=C\u0026style=flat)](https://github.com/XAMPPRocky/tokei)\n[![crates.io](https://img.shields.io/crates/d/moontool?logo=rust\u0026logoColor=white\u0026color=orange)](https://crates.io/crates/moontool)\n[![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/qrichert/moontool/ci-rust.yml?label=tests%20%28rust%29)](https://github.com/qrichert/moontool/actions)\n\nJohn Walker's moontool.c astronomical calculation routines, extracted.\n\n## Original\n\nThe original versions, [moontool](https://www.fourmilab.ch/moontool/)\nand [moontoolw](https://www.fourmilab.ch/moontoolw/), are available at\nJohn Walker's [fourmilab.ch](https://www.fourmilab.ch/).\n\nBackup copies are included in the [`original/`](./original/) directory\nof this repository.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"original/moontool/moontool.gif\" alt=\"John Walker's Moontool\"\u003e\n\u003c/p\u003e\n\n## License\n\nWalker's program is in the public domain, and so is this project.\n\nIn Walker's words:\n\n\u003e Do what thou wilt shall be the whole of the law.\n\n## Usage\n\nTo use the astronomical calculation routines, include `moon.h` and link\nagainst C's standard math library (`-lm`).\n\nIt is C code, but can be used as-is in C++ projects[^cpp].\n\nIf in doubt, take a look at how the CLI is built in the\n[`Makefile`](./Makefile).\n\n[^cpp]:\n    A C++ version of the CLI is available at\n    [2df0bde](https://github.com/qrichert/moontool/blob/2df0bdef6d898bff955ea360075c20900af4c025/main.cpp).\n\n## CLI\n\nThis version includes functions that print out info about the Moon, in a\nway similar to the original program.\n\nThe CLI wraps these functions[^cli].\n\n[^cli]:\n    The C version of the CLI is a demo more than anything. The\n    [Rust version](#ports-to-other-languages) has more functionality.\n\nRun `make` and execute the resulting `moontool` program in the `build/`\ndirectory.\n\nYou can run it bare for real-time data, pass it a datetime string or a\nUnix timestamp (negative values allowed).\n\nUse `-h` option for help.\n\nTo install it, run `make \u0026\u0026 sudo make install`.\n\n```\n$ moontool 1994-12-22T13:53:34\n\nPhase\n=====\n\nJulian date:            2449709.07887   (0h variant: 2449709.57887)\nUniversal time:         Thursday  13:53:34 22 December 1994\nLocal time:             Thursday  14:53:34 22 December 1994\n\nAge of moon:            18 days, 22 hours, 29 minutes.\nLunation:               64.13%   (🌖 Waning Gibbous)\nMoon phase:             81.56%   (0% = New, 100% = Full)\n\nMoon's distance:        386212 kilometres, 60.6 Earth radii.\nMoon subtends:          0.5157 degrees.\n\nSun's distance:         147151251 kilometres, 0.984 astronomical units.\nSun subtends:           0.5420 degrees.\n\nMoon Calendar\n=============\n\nLast new moon:          Friday    23:54 UTC  2 December 1994    Lunation: 890\nFirst quarter:          Friday    21:06 UTC  9 December 1994\nFull moon:              Sunday     2:18 UTC 18 December 1994\nLast quarter:           Sunday    19:07 UTC 25 December 1994\nNext new moon:          Sunday    10:56 UTC  1 January 1995     Lunation: 891\n```\n\n\u003cdetails\u003e\u003csummary\u003eMore examples\u003c/summary\u003e\n\u003cp\u003e\n\n_(These are all part of the Rust CLI.)_\n\n```\n$ moontool --moon 1994-12-22T13:53:34\n⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\n⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\n⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\n⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\n⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⡠⠤⠀⠠⠀⠀⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\n⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⠶⡥⠤⠖⠢⠴⢭⠭⡖⢔⠦⣤⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\n⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠔⠓⢱⣎⣵⠚⠀⠀⠀⠀⠉⢿⣁⣷⣿⠙⢆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\n⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⠊⠁⠀⣀⠈⠁⠀⠀⡀⠀⠀⠀⢘⡗⠁⠈⠘⠙⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\n⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⡋⠀⡄⠁⠀⡢⣀⠰⣀⠂⠀⣀⣠⢉⠄⠀⠀⠀⠑⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\n⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣮⣥⠀⠀⢰⣁⣱⢈⡆⢘⣕⠂⠂⠀⠈⠈⡶⠢⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\n⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣇⢹⣇⢀⠀⠀⢉⢤⢛⡏⠥⡀⠘⠲⢤⣼⡕⠀⠀⢀⣄⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\n⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣿⢿⣳⣮⣀⡀⠳⠌⠀⠻⢠⣼⠷⡎⢩⠉⠔⢠⠀⠾⠿⡅⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\n⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣟⡿⠟⣏⠀⠉⢐⠥⠁⠀⠉⣴⠡⡩⡩⢡⣿⡒⣄⣀⣼⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\n⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⣏⢘⢸⣆⡀⠂⡨⡂⠤⡼⢁⠽⣉⣴⣟⢻⣮⣾⡂⡷⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\n⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠹⡮⡍⣙⠧⣑⡀⠊⠀⠃⠁⢖⣡⣶⡿⢯⠽⣖⣖⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\n⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢮⡛⠭⣽⣥⠶⠀⡀⠀⢒⢶⣶⣿⡿⣿⣿⠟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\n⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠻⣍⡂⡴⡷⠲⠸⢞⠶⡤⣿⢿⡋⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\n⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠒⠳⠤⠤⠌⠁⠩⠌⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\n⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\n⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\n⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\n⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\n⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\n⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\n```\n\n```\n$ moontool --graph 1994-12-22T13:53:34\n\n⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⠤⠔⠒⠉⠉⠉⠉⠉⠉⠉⠉⠒⠢⠤⣀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\n⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠤⠒⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠢⢄⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\n⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠤⠊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\n⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠔⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠀⠈⠑⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\n⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠑⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\n⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠔⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠑⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\n⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠔⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\n⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠔⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\n⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠔⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\n⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠔⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\n⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢄⡀⠀⠀⠀⠀⠀⠀⠀⠀\n⠀⠀⠀⠀⠀⢀⡠⠔⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠢⢄⡀⠀⠀⠀⠀⠀\n⡠⠤⠤⠔⠊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠑⠢⠤⠤⠤\n🌑      🌒         🌓         🌔         🌕        🌖       🌗        🌘      🌑\n\nMoon phases 1994\n⢆⠀⠀⠀⠀⡜⢱⠀⠀⠀⠀⡰⠉⡆⠀⠀⠀⢀⠎⢣⠀⠀⠀⠀⡰⠱⡀⠀⠀⠀⢠⠋⢆⠀⠀⠀⠀⡜⠱⡀⠀⠀⠀⢰⠉⡆⠀⠀⠀⢀⠎⢱⠀⠀⠀⠀⡜⠉⡆⠀⠀⠀⢠⠋⢱⠀⠀⠀⠀⡜⠉⡆⠀⠀⠀⢠⠋⣧⠀⠀\n⠘⡄⠀⠀⡸⠀⠀⢇⠀⠀⢀⠇⠀⢸⠀⠀⠀⡸⠀⠈⡆⠀⠀⢠⠃⠀⢣⠀⠀⠀⡜⠀⠘⡄⠀⠀⢰⠁⠀⢣⠀⠀⠀⡇⠀⠸⡀⠀⠀⡜⠀⠀⢇⠀⠀⢰⠁⠀⠸⡀⠀⠀⡎⠀⠀⢇⠀⠀⢸⠀⠀⠸⡀⠀⢀⠇⠀⡏⡆⠀\n⠀⢣⠀⢠⠃⠀⠀⠸⡀⠀⡜⠀⠀⠀⡇⠀⢠⠃⠀⠀⢱⠀⠀⡜⠀⠀⠈⡆⠀⢰⠁⠀⠀⢱⠀⠀⡎⠀⠀⠘⡄⠀⡸⠀⠀⠀⢣⠀⢠⠃⠀⠀⠘⡄⠀⡎⠀⠀⠀⢣⠀⢸⠀⠀⠀⠸⡀⢀⠇⠀⠀⠀⢇⠀⡸⠀⠀⡇⢸⠀\n⠀⠈⠦⠊⠀⠀⠀⠀⠱⠔⠁⠀⠀⠀⠘⠤⠊⠀⠀⠀⠀⠣⠔⠁⠀⠀⠀⠘⠤⠃⠀⠀⠀⠀⠣⠜⠀⠀⠀⠀⠘⠤⠃⠀⠀⠀⠀⠣⠎⠀⠀⠀⠀⠱⡸⠀⠀⠀⠀⠈⠦⠃⠀⠀⠀⠀⠱⠜⠀⠀⠀⠀⠈⠦⠃⠀⠀⡇⠀⠣\n```\n\n```\n$ moontool --json --verbose 1994-12-22T13:53:34\n{\"phase\":{\"julian_date\":2449709.078865741,\"timestamp\":788104414,\"utc_datetime\":\"1994-12-22T13:53:34Z\",\"age\":18.93744836966762,\"fraction_of_lunation\":0.6412824537593207,\"phase\":{\"index\":5,\"name\":\"Waning Gibbous\",\"icon\":\"🌖\"},\"fraction_illuminated\":0.815597324336816,\"ecliptic_longitude\":141.3961136662877,\"ecliptic_latitude\":-7.2584706818538205,\"parallax\":0.9462397831826777,\"distance_to_earth_km\":386212.9210746231,\"distance_to_earth_earth_radii\":60.55240399654809,\"subtends\":0.5156693296170667,\"sun_ecliptic_longitude\":270.49836358716567,\"sun_distance_to_earth_km\":147151251.1218971,\"sun_distance_to_earth_astronomical_units\":0.983641220479464,\"sun_subtends\":0.5419943663403342},\"calendar\":{\"julian_date\":2449709.078865741,\"timestamp\":788104414,\"utc_datetime\":\"1994-12-22T13:53:34Z\",\"lunation\":890,\"last_new_moon\":2449689.4962275415,\"last_new_moon_utc\":\"1994-12-02T23:54:34Z\",\"first_quarter\":2449696.379674719,\"first_quarter_utc\":\"1994-12-09T21:06:44Z\",\"full_moon\":2449704.5961089605,\"full_moon_utc\":\"1994-12-18T02:18:24Z\",\"last_quarter\":2449712.296738699,\"last_quarter_utc\":\"1994-12-25T19:07:18Z\",\"next_new_moon\":2449718.9561368735,\"next_new_moon_utc\":\"1995-01-01T10:56:50Z\"},\"yearly_calendar\":{\"julian_date\":2449709.078865741,\"timestamp\":788104414,\"new_moons\":[{\"date\":2449364.466461601,\"date_utc\":\"1994-01-11T23:11:42Z\"},{\"date\":2449394.1053330023,\"date_utc\":\"1994-02-10T14:31:41Z\"},{\"date\":2449423.796219726,\"date_utc\":\"1994-03-12T07:06:33Z\"},{\"date\":2449453.513123169,\"date_utc\":\"1994-04-11T00:18:54Z\"},{\"date\":2449483.2139252475,\"date_utc\":\"1994-05-10T17:08:03Z\"},{\"date\":2449512.852505584,\"date_utc\":\"1994-06-09T08:27:36Z\"},{\"date\":2449542.4013906033,\"date_utc\":\"1994-07-08T21:38:00Z\"},{\"date\":2449571.864828284,\"date_utc\":\"1994-08-07T08:45:21Z\"},{\"date\":2449601.272747484,\"date_utc\":\"1994-09-05T18:32:45Z\"},{\"date\":2449630.6633196543,\"date_utc\":\"1994-10-05T03:55:11Z\"},{\"date\":2449660.0664278977,\"date_utc\":\"1994-11-03T13:35:39Z\"},{\"date\":2449689.4962275415,\"date_utc\":\"1994-12-02T23:54:34Z\"}],\"full_moons\":[{\"date\":2449380.0586447124,\"date_utc\":\"1994-01-27T13:24:27Z\",\"name\":\"Wolf Moon\"},{\"date\":2449409.5533055435,\"date_utc\":\"1994-02-26T01:16:46Z\",\"name\":\"Snow Moon\"},{\"date\":2449438.96606304,\"date_utc\":\"1994-03-27T11:11:08Z\",\"name\":\"Worm Moon\"},{\"date\":2449468.3236192437,\"date_utc\":\"1994-04-25T19:46:01Z\",\"name\":\"Pink Moon\"},{\"date\":2449497.6524686604,\"date_utc\":\"1994-05-25T03:39:33Z\",\"name\":\"Flower Moon\"},{\"date\":2449526.981210815,\"date_utc\":\"1994-06-23T11:32:57Z\",\"name\":\"Strawberry Moon\"},{\"date\":2449556.3442921047,\"date_utc\":\"1994-07-22T20:15:47Z\",\"name\":\"Buck Moon\"},{\"date\":2449585.782307023,\"date_utc\":\"1994-08-21T06:46:31Z\",\"name\":\"Sturgeon Moon\"},{\"date\":2449615.333580816,\"date_utc\":\"1994-09-19T20:00:21Z\",\"name\":\"Harvest Moon\"},{\"date\":2449645.012958655,\"date_utc\":\"1994-10-19T12:18:40Z\",\"name\":\"Hunter's Moon\"},{\"date\":2449674.790592812,\"date_utc\":\"1994-11-18T06:58:27Z\",\"name\":\"Beaver Moon\"},{\"date\":2449704.5961089605,\"date_utc\":\"1994-12-18T02:18:24Z\",\"name\":\"Cold Moon\"}]},\"sun_calendar\":{\"julian_date\":2449709.078865741,\"timestamp\":788104414,\"utc_datetime\":\"1994-12-22T13:53:34Z\",\"march_equinox\":2449432.353579861,\"march_equinox_utc\":\"1994-03-20T20:29:09Z\",\"june_solstice\":2449525.1174054933,\"june_solstice_utc\":\"1994-06-21T14:49:04Z\",\"september_equinox\":2449618.7643152755,\"september_equinox_utc\":\"1994-09-23T06:20:37Z\",\"december_solstice\":2449708.5998854158,\"december_solstice_utc\":\"1994-12-22T02:23:50Z\"}}\n```\n\n\u003c/p\u003e\n\u003c/details\u003e\n\n## Others\n\n### Ports to Other Languages\n\n- [`others/rust/`](./others/rust) A port to Rust.\n- [`others/python/`](./others/python) A port to Python.\n\nThe C and Python versions stick as closely as possible to the original.\n\nThe Rust version takes some liberties to provide a nicer API (the\ncalculations do no change however). It also exposes the Moon's ecliptic\nlongitude, ecliptic latitude, and parallax, and the Sun's ecliptic\nlongitude. All four of which are calculated in the original, but the\nvalues are never used.\n\nThe Rust version also includes additional features and an augmented CLI.\n\n### And Also\n\nThis repo [also includes](./others):\n\n- `moonsim.sh` A shell script that simulates a lunation.\n- `webmoon.py` A simple Python script that serves the CLI over the web.\n\n\u003cp align=\"center\"\u003e\n⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u003cbr /\u003e\n⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⡠⠤⠀⠠⠀⠀⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u003cbr /\u003e\n⠀⠀⠀⠀⠀⠀⣠⠶⡥⠤⠖⠢⠴⢭⠭⡖⢔⠦⣤⡀⠀⠀⠀⠀⠀⠀⠀⠀\u003cbr /\u003e\n⠀⠀⠀⠀⠔⠓⢱⣎⣵⠚⠀⠀⠀⠀⠉⢿⣁⣷⣿⠙⢆⠀⠀⠀⠀⠀⠀⠀\u003cbr /\u003e\n⠀⠀⢠⠊⠁⠀⣀⠈⠁⠀⠀⡀⠀⠀⠀⢘⡗⠁⠈⠘⠙⠂⠀⠀⠀⠀⠀⠀\u003cbr /\u003e\n⠀⢠⡋⠀⡄⠁⠀⡢⣀⠰⣀⠂⠀⣀⣠⢉⠄⠀⠀⠀⠑⠀⠀⠀⠀⠀⠀⠀\u003cbr /\u003e\n⠀⣮⣥⠀⠀⢰⣁⣱⢈⡆⢘⣕⠂⠂⠀⠈⠈⡶⠢⠀⠀⠀⠀⠀⠀⠀⠀⠀\u003cbr /\u003e\n⠀⣇⢹⣇⢀⠀⠀⢉⢤⢛⡏⠥⡀⠘⠲⢤⣼⡕⠀⠀⢀⣄⠄⠀⠀⠀⠀⠀\u003cbr /\u003e\n⠈⣿⢿⣳⣮⣀⡀⠳⠌⠀⠻⢠⣼⠷⡎⢩⠉⠔⢠⠀⠾⠿⡅⠀⠀⠀⠀⠀\u003cbr /\u003e\n⠀⣟⡿⠟⣏⠀⠉⢐⠥⠁⠀⠉⣴⠡⡩⡩⢡⣿⡒⣄⣀⣼⡇⠀⠀⠀⠀⠀\u003cbr /\u003e\n⠀⠸⣏⢘⢸⣆⡀⠂⡨⡂⠤⡼⢁⠽⣉⣴⣟⢻⣮⣾⡂⡷⠂⠀⠀⠀⠀⠀\u003cbr /\u003e\n⠀⠀⠹⡮⡍⣙⠧⣑⡀⠊⠀⠃⠁⢖⣡⣶⡿⢯⠽⣖⣖⡄⠀⠀⠀⠀⠀⠀\u003cbr /\u003e\n⠀⠀⠀⠈⢮⡛⠭⣽⣥⠶⠀⡀⠀⢒⢶⣶⣿⡿⣿⣿⠟⠀⠀⠀⠀⠀⠀⠀\u003cbr /\u003e\n⠀⠀⠀⠀⠀⠉⠻⣍⡂⡴⡷⠲⠸⢞⠶⡤⣿⢿⡋⠋⠀⠀⠀⠀⠀⠀⠀⠀\u003cbr /\u003e\n⠀⠀⠀⠀⠀⠀⠀⠀⠉⠒⠳⠤⠤⠌⠁⠩⠌⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u003cbr /\u003e\n⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀\u003cbr /\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqrichert%2Fmoontool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fqrichert%2Fmoontool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqrichert%2Fmoontool/lists"}