Skip to content

mindey/edtime

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Decimal Time as Epoch Day (ED)

Deprecated: Use eday package, which implements a simpler, datetime.datime <-> float (ED) conversion.


Imagine decimal representation of days of UNIX seconds, call it "Epoch Days".

Then, imagine grouping the digits of such days representation as follows:

dYear ° dMonth dWeek day T dHour : dMinute : dSecond, such that:
  • 1 dYear = 1000 days, 1 dMonth = 100 days, 1 dWeek = 10 days,
  • 1 dHour = 0.1 days, 1 dMinute = 0.001 days, 1 dSecond = 0.00001 days.

Yes, you just divide your UNIX seconds / 86400 and group digits!

Exmaple

For example, 2021-09-30T11:25:45Z would be represented as 1633001147 UNIX seconds, therefore: 1633001147/86400 = 18900.476238425927 = 18°9″0′0T4:76:23.8425927, meaning it is 18th dYear, 9th dMonth, 0th dWeek, 0th day, 4th dHour, 76th dMinute, 23.8425927th dSecond.

Usage

pip install edtime

>>> from edtime import edtime
>>> from datetime import datetime
>>> t0 = edtime(datetime.utcnow()) # OR edtime.utcnow()
>>> t1 = edtime.datetime(2021, 12, 20, 4, 52, 47, 954297)
>>> str(t1)
'18°9″8′1T2:03:33.2804365'
>>> float(t1)
18981.203332804365
>>> t2 = edtime(18981.203332804365); t2
edtime.edtime(dyear=18, dmonth=9, dweek=8, dday=1, dhour=2, dminute=3, dsecond=33.2804365)
>>> t1 == t2
True
>>> t3 = edtime(16, 4, 5, 3, 4, 65, 40.5092593); t3 # 2015-01-18T11:10:11
edtime.edtime(dyear=16, dmonth=4, dweek=5, dday=3, dhour=4, dminute=65, dsecond=40.5092593)
>>> str(t1 + t2 + t3)
'54°4″1′5T8:72:07.070133'
>>> (t1 + t2 + t3).to_datetime().isoformat()
'2118-12-26T20:55:46.908595'

For astronomers:

ED = JD - 2440587.5

>>> from edtime import edtime
>>> d = edtime.datetime(2000, 1, 1, 12)
>>> d.to_jd()
>>> 2451545.0
>>> float(edtime.from_jd(2451545))
10957.5

Notice

  1. => 1 dSecond is:
    • 0.864 standard SI seconds long.
  2. => 1 dMinute is:
    • 86.4 standard SI seconds long.
  3. => 1 dHour is:
    • 8640 standard SI seconds long.
  4. => 1 dWeek is:
    • 10 days long.
  5. => 1 dMonth is:
    • 100 days long.
  6. => 1 dYear is:
    • 1000 days long.

Use cases

  • https://0oo.li/calendar/ - The Infinity Family website uses this calendar in practice, planning d-weekly (=10-day long) sprints, and using the last whole digit of the epoch day as the weekday, and the remaining digits as decimal time.

About

Extended Decimal Time

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages