semvec/pypi-packages huggingface dataset:
edtime 1.0.1
Extended Decimal Time
License: MIT

Decimal Time as Epoch Day (ED)
==============================

Imagine decimal representation of days of `UNIX seconds <https://en.wikipedia.org/wiki/Unix_time>`__, 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``

.. code:: python

    >>> 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``

.. code:: python

    >>> 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 ``dSecond`` is:
    * 0.864 standard SI seconds long.
#. => 1 ``dMinute`` is:
    * 86.4 standard SI seconds long.
#. => 1 ``dHour`` is:
    * 8640 standard SI seconds long.
#. => 1 ``dWeek`` is:
    * 10 days long.
#. => 1 ``dMonth`` is:
    * 100 days long.
#. => 1 ``dYear`` is:
    * 1000 days long.