from datetime import date, timedelta
def days_to_ymd(days: int) -> str:
start = date(1970, 1, 1)
end = start + timedelta(days=days)
diff = end - start
# Use relativedelta for calendar-accurate Y/M/D
from dateutil.relativedelta import relativedelta
rd = relativedelta(end, start)
return f"{rd.years} year{'s' if rd.years != 1 else ''}, " \
f"{rd.months} month{'s' if rd.months != 1 else ''} and " \
f"{rd.days} day{'s' if rd.days != 1 else ''}"
print(days_to_ymd(452))
'''
run:
1 year, 2 months and 28 days
'''