Skip to content

Instantly share code, notes, and snippets.

@mattjohnsonpint
Created May 21, 2021 21:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save mattjohnsonpint/ff9c702808117cb152b227977cadbfed to your computer and use it in GitHub Desktop.
Save mattjohnsonpint/ff9c702808117cb152b227977cadbfed to your computer and use it in GitHub Desktop.
DateOnly Between methods
public static int DaysBetween(DateOnly startDate, DateOnly endDate)
{
return endDate.DayNumber - startDate.DayNumber;
}
public static (int Months, int Days) MonthsAndDaysBetween(DateOnly startDate, DateOnly endDate)
{
int months = (endDate.Year - startDate.Year) * 12 + endDate.Month - startDate.Month;
DateOnly testDate = startDate.AddMonths(months);
if (startDate <= endDate)
{
if (testDate > endDate) months--;
}
else
{
if (testDate < endDate) months++;
}
int days = DaysBetween(startDate.AddMonths(months), endDate);
return (months, days);
}
public static (int Years, int Months, int Days) YearsMonthsAndDaysBetween(DateOnly startDate, DateOnly endDate)
{
(int months, int days) = MonthsAndDaysBetween(startDate, endDate);
int years = months / 12;
months %= 12;
return (years, months, days);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment