Days difference between two dates
DateTime's can be subtracted to get a TimeSpan. The TimeSpan has a TotalDays which is the number of days (includes fractional days as well).
int DaysBetween(DateTime d1, DateTime d2) {
TimeSpan span = d2.Subtract(d1);
return (int)span.TotalDays;
}
NOTE Time spans are signed. If d1=1/9/11 and d2=1/11/11, then d1.subtract(d2)=timespan of -2 days. So if you want to use a time span to find out if dates are within X days of each other, you need to take the absolute value of the total days...
Math.Abs(span.TotalDays)
You can use the subtraction operator on the two instances of DateTime
(or DateTimeOffset
, as it has the same subtraction operator, and it is the recommended structure to use for date values in .NET) to get a TimeSpan
instance.
Once you have that, you can call the Days
property to get the number of whole days that the TimeSpan
represents.
If you want the number of whole and fractional days, then look at the TotalDays
property.
In your specific case, it seems that you want to add 1 to whatever value the Days
property returns, as your custom calculation indicates that for two DateTime
instances that represent the same value, the result is 1.
DateTime dtOne;
DateTime dtTwo;
// to get the total days in between
int answer = (dtTwo - dtOne).TotalDays