using System;
public static class DayConverter
{
public static (int Years, int Months, int Days) SplitDays(int totalDays) {
DateTime start = new DateTime(1970, 1, 1);
DateTime end = start.AddDays(totalDays);
int years = end.Year - start.Year;
int months = end.Month - start.Month;
int days = end.Day - start.Day;
// Normalize negative days
if (days < 0) {
months--;
DateTime prevMonth = end.AddMonths(-1);
days += DateTime.DaysInMonth(prevMonth.Year, prevMonth.Month);
}
// Normalize negative months
if (months < 0) {
months += 12;
years--;
}
return (years, months, days);
}
public static void Main(string[] args)
{
var result = DayConverter.SplitDays(452);
Console.WriteLine($"{result.Years} years, {result.Months} months, {result.Days} days");
}
}
/*
run:
1 years, 2 months, 28 days
*/