How to get the difference between two DateTime in hour with C# ?

I am currently developing a mobile app with Xamrin.Forms and I had to know the number of hours between two dates. It seems dumb, but in fact, it is quite tough to find a smart and optimised way to do it. I wanted to share with you the solution I found.

icons8_team_dhztnlvne8m_unsplash.jpg

Basics

First, let's look at the basics.

  • DateTime.Substract(DateTime) lets us to substract the first date by the second one. It returns a TimeSpan value and it represents a time interval.
  • TimeSpan is in fact, an instance that represents the difference between 2 DateTime objects. To learn more about this type, go here.
  • TimeSpan.TotalHours is the property that interests us. It gets the value of the current TimeSpan structure expressed in whole and fractional hours and its value type is a double.
  • If you need the hour difference without a fraction of hours by using TimeSpan.Hours property. It returns an int

Example

Here is a code snippet using this method to get the hour difference for training.

public int GetHourDifference(DateTime dateBefore, DateTime dateAfter)
{
  TimeSpan hourDifferenceSpan = dateAfter.Subtract(dateBefore);
  
  int hourDifference = hourDifferenceSpan.TotalHours;

  return hourDifference;
}

DateTime trainingBegin = DateTime.Today; // The training begins now
DateTime trainingEnd = DateTime.Today.AddHours(2);

Console.WriteLine("The training will last " + GerHourDifference(trainingBegin, trainingEnd) + " hours.");

Thank you so much for reading! I really like to share all of those little tips! If you like it and it also interests you, please let me know in the comments! I can do these with JS, PHP, HTML and CSS.

Sources

H2
H3
H4
3 columns
2 columns
1 column
Join the conversation now
Logo
Center