In C#, we can easily
subtract two dates just like numbers.
Example of getting how many days, weeks of two dates
// Get time difference between two date DateTime oldDateTime = new DateTime(2020, 1, 1); DateTime newDateTime = DateTime.Now; TimeSpan ts = newDateTime - oldDateTime; // calculate how many days in integer Console.WriteLine("difference in days: "+ts.Days); // difference in days: 370 // calculate how many days in float Console.WriteLine("difference in days: "+ts.TotalDays); // difference in days: 370.28024628126155 // calculate how many weeks in float Console.WriteLine("difference in weeks: "+ts.TotalDays/7);
Unfortunately C# does not provide a convenient method which can easily tell us the
years between two dates according to the official doc:
"TimeSpan is internally represented as a number of milliseconds. While
this maps well into units of time such as hours and days, any
periods longer than that aren't representable in a nice fashion.
For instance, a month can be between 28 and 31 days, while a year
can contain 365 or 364 days. A decade can have between 1 and 3 leapyears,
depending on when you map the TimeSpan into the calendar. This is why
we do not provide Years() or Months()."
However we can use the following work around:
// calculate how many months var monthDiff = ((newDateTime.Year - oldDateTime.Year) * 12) + newDateTime.Month - oldDateTime.Month; Console.WriteLine("difference in months: "+ monthDiff);