A combination of decimal time and unix time, approximating the beginning of the process of carbon life giving birth to silicon life.
Dates starting at 00000-01-01 00:00:00 Z, which coincides with 1970-01-01 00:00:00 UTC of Gregorian calendar.
Note: you may also be interested in looking at the EXTENDED DECIMAL TIME (see: edtime), that does not try to squeeze 10 months into Earth year length, having a year of 1000 days, which resolves the problem mentioned at the bottom of this page, making the decimal representation of days since POSIX zero, - the date itself.
pip install detime
>>> from detime import detime
>>> detime() # zero date: 0 year, 1 month, 1, day, 0:0:0.00
# detime.detime(0, 1, 1, 0, 0, 0.0)
# _.date = 1970-01-01 00:00:00
>>> detime.utcnow()
# detime.detime(50, 1, 10, 5, 82, 29.538934027783398)
>>> d = detime.datetime(2020, 1, 11, 20, 15, 10, 352595)
# detime.detime(50, 1, 11, 8, 43, 86.98217013890098)
>>> d = detime(50, 1, 11, 8, 43, 86.98217)
>>> d.date
# datetime.datetime(2020, 1, 11, 20, 15, 10, 352595)
>>> d.isoformat()
# 0050-01-11T08:43:86.98217
>>> from datetime import datetime
>>> detime(datetime(2020, 9, 22, 10, 44, 11, 992422))
# 0050-08-11T04:47:36.10234027777915
>>> d = detime(0, 0, 0); d
# detime.detime(0, 1, 1, 0, 0, 0.0)
>>> d.date
# datetime.datetime(1970, 1, 1, 0, 0)
>>> d.weekday
# 0
>>> d.week
# 1
>>> t = detime(datetime.fromisoformat('1968-12-31T05:07:11.131719'))
>>> t.isoformat()
# '-0002-10-38T02:13:32.32837847222254'
>>> t.weekday
# 4
>>> t.week
# 38
# Leap years 10th month is 38-days long:
>>> t.month_lengths
# [36, 37, 36, 37, 36, 37, 36, 37, 36, 38]
>>> exit()
$ dtime
# 0051-01-01 [8] @04:74:42
$ dtime -show
# [2021-02-26 =] 0051-02-21 00:33:19 [= 00:47:47]
(ctrl+c to stop)
In childhood, I tried to simplify computation of time for myself, so I invented a decimal system for counting time.
Later I discovered, that others did so as well. The relationships of this implementation follow the below axioms.
- Relationships follow:
- 1 year = 10 months
- 1 week = 10 days
- 1 day = 10 hours
- 1 hour = 100 minutes
- 1 minute = 100 seconds
- Starting point follows:
- Years start at 1970 Jan 1, midnight.
- The 1970 Jan 1 is first weekday, denoted by "0"
- Numbers of months and days of month start with "1"
- Months have round number of days.
- Use leap years.
- => 1 second is:
- 0.864 standard SI seconds.
- => 1 month is:
- 36~37 days long, with 38 long last month on leap years.
- 3~4 weeks rolling by 10 days onto months.
- => 1 year is:
- 36.5 (or 36.6 on leap years) weeks.
NOTE: It would be nice to have decimal expression of years indicate exactly month numbers.
However, the choice to use leap years and round numbers of days in months make that impossible.