agenda/agenda/utils.py

24 lines
583 B
Python

"""Utility functions."""
import datetime
DateOrDateTime = datetime.datetime | datetime.date
def as_date(d: DateOrDateTime) -> datetime.date:
"""Convert datetime to date."""
if isinstance(d, datetime.datetime):
return d.date()
assert isinstance(d, datetime.date)
return d
def as_datetime(d: DateOrDateTime) -> datetime.datetime:
"""Date/time of event."""
t0 = datetime.datetime.min.time()
return (
d
if isinstance(d, datetime.datetime)
else datetime.datetime.combine(d, t0).replace(tzinfo=datetime.timezone.utc)
)