#date #date-format #solar #timestamp #human #calendar #sunset

no-std bin+lib geodate

Geodate computes geocentric expressions of points in time using a natural lunisolar calendar with metric time based on decimal fractions of the mean solar day

7 releases (4 breaking)

Uses old Rust 2015

0.5.0 Sep 29, 2024
0.4.0 Jul 30, 2020
0.3.0 May 10, 2019
0.2.1 Mar 20, 2017
0.1.1 Jan 18, 2017

#57 in Date and time

Download history 2/week @ 2024-06-24 23/week @ 2024-07-22 3/week @ 2024-07-29 10/week @ 2024-09-09 155/week @ 2024-09-23 69/week @ 2024-09-30

234 downloads per month
Used in 3 crates

MIT license

80KB
1.5K SLoC

Geodate

A command line tool displaying the time in a geocentric date format.

Synopsis

Geodate displays the current local time in a geocentric date format using a natural lunisolar calendar with metric time based on decimal fractions of the mean solar day.

Be prepared to forget all about hours and minutes and start using centidays instead! For example noon is the middle of the day or 50 centidays after midnight.

You will also learn to be more in touch with the natural environment with this lunisolar calendar. For example the full moon will always be around the middle of every month, easy, just look up in the sky to know the time.

A detailed explanation of the date format is available online.

Installation

First you need to install Rust:

$ curl https://sh.rustup.rs -sSf | sh

Then you can install the latest stable version with cargo:

$ cargo install geodate

Or the development version by fetching the git repository:

$ git clone git://github.com/vinc/geodate.git
$ cd geodate
$ cargo build --release
$ sudo cp target/release/geodate /usr/local/bin/

Usage

Run this tool with a latitude and a longitude and you will get a geocentric expression of the current local time:

$ geodate -46.8995 168.1269
01:15:06:02:52:92

Add a timestamp to get the date of a particular event (for example at sunrise on the day of the summer solstice at Stonehenge):

$ geodate 51.1789 -1.8262 1403322675
01:14:05:24:15:42

Geodate can also be run in ephemeris mode with the --ephem flag:

$ geodate --ephem 51.1789 -1.8262 1403322675
Moonrise:            01:14:05:24:01:57
Current:             01:14:05:24:15:42
Sunrise:             01:14:05:24:15:46
Solstice:            01:14:05:24:44:61
Moonset:             01:14:05:24:58:86
Sunset:              01:14:05:24:84:53

Finally you can always add a --machine flag to get a unix timestamp instead of the default human format, and --unix to change epoch and begin to count the years from 1970 like computers do instead of 1900 which is more in line with what humans are used to.

Algorithms

Geodate implements a lot of algorithms described in the book Astronomical Algorithms by Jean Meeus to calculate the precise time of any sunrise, solstice, and new moon required to create a lunisolar calendar.

Additional astronomical events such as moonrise or equinox are also calculated in ephemeris mode.

License

Copyright (c) 2016-2024 Vincent Ollivier. Released under the MIT License.

Dependencies

~475–770KB
~14K SLoC