waterdb / utils /date_utils.py
github-actions[bot]
Add all files with LFS support
007b0fc
raw
history blame contribute delete
934 Bytes
import calendar
from datetime import datetime
def get_reporting_year(date: datetime, reporting_end_month: int) -> int:
"""Calculate reporting year based on the last month of reporting year"""
if date.month <= reporting_end_month:
return date.year
return date.year + 1
def format_reporting_period(year: int, reporting_month: int) -> str:
"""Format the reporting period for a given reporting year"""
end_date = datetime(
year, reporting_month, calendar.monthrange(year, reporting_month)[1]
)
# If reporting month is December, start date should be January 1st of same year
# Otherwise, start date is the first day of the next month from previous year
if reporting_month == 12:
start_date = datetime(year, 1, 1)
else:
start_date = datetime(year - 1, reporting_month + 1, 1)
return f"{start_date.strftime('%-m/%-d/%y')} - {end_date.strftime('%-m/%-d/%y')}"