Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Days difference between two dates [duplicate]

Tags:

c#

datetime

I've been trying many ways to calculate the round number of days between two dates, I mean, counting the whole days. An example of what I need:

   START DATE            END DATE          Day Count    24/02/2010 16:26     24/02/2010 16:26         1   20/02/2010 18:16     24/02/2010 16:26         5   31/12/2009 20:00     24/02/2010 16:26         56   15/07/2009 20:59     24/02/2010 16:26         225   
like image 230
Ben Orozco Avatar asked Feb 24 '10 22:02

Ben Orozco


People also ask

How do you find the difference between two dates in days?

Calculate the no. of days between two dates, divide the time difference of both the dates by no. of milliseconds in a day (1000*60*60*24) Print the final result using document.

How do I calculate days difference in Excel?

To find the number of days between these two dates, you can enter “=B2-B1” (without the quotes into cell B3). Once you hit enter, Excel will automatically calculate the number of days between the two dates entered.

How do I find the difference between two dates in the same column?

To calculate the difference between two dates in the same column, we use the createdDate column of the registration table and apply the DATEDIFF function on that column. To find the difference between two dates in the same column, we need two dates from the same column.


2 Answers

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) 
like image 66
Josh Avatar answered Oct 26 '22 19:10

Josh


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.

like image 43
casperOne Avatar answered Oct 26 '22 17:10

casperOne