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
fromcolonyformat
orfromisoformat
methods. - Pretty formatting of dates is with the
colonyformat
orisoformat
methods. - The attributes
p_year
.p_day
,p_hour
,p_minute
, andp_second
give the components of the Colonial datetime. Similarly, the attributesyear
.day
,hour
,minute
, andsecond
give the components of the CE datetime. - You can use
timedelta
objects changes the time;PoseidonDateTime.p_day_duration
is 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'