arbret/backend/utils/date_queries.py
2025-12-25 18:27:59 +01:00

27 lines
876 B
Python

"""Utilities for date/time query operations."""
from datetime import UTC, date, datetime, time
def date_to_start_datetime(d: date) -> datetime:
"""Convert a date to datetime at start of day (00:00:00) in UTC."""
return datetime.combine(d, time.min, tzinfo=UTC)
def date_to_end_datetime(d: date) -> datetime:
"""Convert a date to datetime at end of day (23:59:59.999999) in UTC."""
return datetime.combine(d, time.max, tzinfo=UTC)
def date_range_to_datetime_range(
start_date: date, end_date: date
) -> tuple[datetime, datetime]:
"""
Convert a date range to datetime range.
Returns:
Tuple of (start_datetime, end_datetime) where:
- start_datetime is start_date at 00:00:00 UTC
- end_datetime is end_date at 23:59:59.999999 UTC
"""
return date_to_start_datetime(start_date), date_to_end_datetime(end_date)