In .NET 6 the DateOnly
struct was introduced. How can one calculate the difference between two DateOnly
structs (for example the total number of days)?
For two DateTime
structs this can be done as follows:
private int DaysDifferenceDateTime(DateTime dateTime1, DateTime dateTime2)
{
return (dateTime1 - dateTime2).Days;
}
However if one tries this, it will not work:
private int DaysDifferenceDateOnly(DateOnly dateOnly1, DateOnly dateOnly2)
{
return (dateOnly1 - dateOnly2).Days; // this is invalid code
}
A possible workaround is to convert both DateOnly
to DateTime
:
private int DaysDifferenceDateOnlyConverted(DateOnly dateOnly1, DateOnly dateOnly2)
{
return (new DateTime(dateOnly1.Year, dateOnly1.Month, dateOnly1.Day) - new DateTime(dateOnly2.Year, dateOnly2.Month, dateOnly2.Day)).Days;
}
But is there a more elegant way to calculate the differences?