# years - get difference between two dates c# in days

## Calculate difference between two dates(number of days)? (10)

Assuming `StartDate` and `EndDate` are of type `DateTime`:

``````(EndDate - StartDate).TotalDays
``````

I see that this question has been answered for Java, JavaScript, and PHP, but not C#. So, how might one calculate the number of days between two dates in C#?

First declare a class that will return later:

``````public void date()
{
Datetime startdate;
Datetime enddate;
Timespan remaindate;

startdate = DateTime.Parse(txtstartdate.Text).Date;
enddate = DateTime.Parse(txtenddate.Text).Date;

remaindate = enddate - startdate;

if (remaindate != null)
{
lblmsg.Text = "you have left with " + remaindate.TotalDays + "days.";
}
else
{
lblmsg.Text = "correct your code again.";
}
}

protected void btncal_Click(object sender, EventArgs e)
{
date();
}
``````

Use a button control to call the above class. Here is an example:

For beginners like me that will stumble upon this tiny problem, in a simple line, with sample conversion to int:

``````int totalDays = Convert.ToInt32((DateTime.UtcNow.Date - myDateTime.Date).TotalDays);
``````

This calculates the total days from today (DateTime.UtcNow.Date) to a desired date (myDateTime.Date).

If myDateTime is yesterday, or older date than today, this will give a positive (+) integer result.

On the other side, if the myDateTime is tomorrow or on the future date, this will give a negative (-) integer result due to rules of addition.

Happy coding! ^_^

Get the difference between the two dates and then get the days from:

``````int total_days = (EndDate - StartDate).TotalDays
``````

In case someone wants numer of whole days as a double (`a`, `b` of type `DateTime`):

`````` (a.Date - b.Date).TotalDays
``````

The top answer is correct, however if you would like only WHOLE days as an int and are happy to forgo the time component of the date then consider:

``````(EndDate.Date - StartDate.Date).Days
``````

Again assuming StartDate and EndDate are of type DateTime.

Using a timespan would solve the problems as it has many attributes:

``````DateTime strt_date = DateTime.Now;
DateTime end_date = Convert.ToDateTime("10/1/2017 23:59:59");
TimeSpan nod = (end_date - strt_date);
Console.WriteLine(strt_date + "" + end_date + "" + "" + nod.TotalHours + "");
``````

You can try this

``````EndDate.Date.Subtract(DateTime.Now.Date).Days
``````

``````// Difference in days, hours, and minutes.

TimeSpan ts = EndDate - StartDate;

// Difference in days.

int differenceInDays = ts.Days; // This is in int
double differenceInDays= ts.TotalDays; // This is in double

// Difference in Hours.
int differenceInHours = ts.Hours; // This is in int
double differenceInHours= ts.TotalHours; // This is in double

// Difference in Minutes.
int differenceInMinutes = ts.Minutes; // This is in int
double differenceInMinutes= ts.TotalMinutes; // This is in double
``````

You can also get the difference in seconds, milliseconds and ticks.

``````DateTime xmas = new DateTime(2009, 12, 25);
double daysUntilChristmas = xmas.Subtract(DateTime.Today).TotalDays;
`````` 