PoseidonDateTime code
Jump to navigation
Jump to search
User:Neil wrote some Python code that was used to convert CE dates to colonial and convert colonial dates to CE, described on the Colonial calendar page.
The code is available on Gitlab (under an Apache open-source licence), and can be installed via PyPI as
pip install poseidondatetime
Sample usage
This is a sample session of using the PoseidonDateTime class.
- New objects are created with the
fromcolonyformatorfromisoformatmethods. - Pretty formatting of dates is with the
colonyformatorisoformatmethods. - The attributes
p_year.p_day,p_hour,p_minute, andp_secondgive the components of the Colonial datetime. Similarly, the attributesyear.day,hour,minute, andsecondgive the components of the CE datetime. - You can use
timedeltaobjects changes the time;PoseidonDateTime.p_day_durationis one Poseidon day.
>>> import poseidon_datetime as pdt
>>> import datetime as dt
>>> p_atlantis = pdt.PoseidonDateTime.fromisoformat('2124-08-07')
>>> p_atlantis.colonyformat()
'076.33 18:51:43'
>>> p_atlantis.colonyformat(include_time=True)
'076.33 18:51:43'
>>> p_atlantis.colonyformat(include_time=False)
'076.33'
>>> p_birthday = pdt.PoseidonDateTime.fromcolonyformat('023.99 28:15:00')
>>> p_birthday
PoseidonDateTime(2199, 1, 30, 23, 14, 22)
>>> p_birthday.isoformat()
'2199-01-30T23:14:22'
>>> p_birthday.p_day
23
>>> p_birthday.day
30
>>> p_after_birthday = p_birthday + dt.timedelta(days=1)
>>> p_after_birthday.isoformat()
'2199-01-31T23:14:22'
>>> p_after_birthday.colonyformat()
'024.99 22:14:17'
>>> p_after_birthday = p_birthday + pdt.PoseidonDateTime.p_day_duration
>>> p_after_birthday.colonyformat()
'024.99 28:15:00'
>>> p_after_birthday.isoformat()
'2199-02-01T05:15:05'