C# Program to get the difference between two dates

The DateTime.Subtract() method in C# is used to calculate the difference between two dates. It returns a TimeSpan object representing the time interval between the two dates.

Syntax

Following is the syntax for using DateTime.Subtract() method −

TimeSpan result = dateTime1.Subtract(dateTime2);

Alternatively, you can use the subtraction operator −

TimeSpan result = dateTime1 - dateTime2;

Parameters

The Subtract() takes one parameter −

  • value − A DateTime object to subtract from the current instance.

Return Value

Returns a TimeSpan object that represents the difference between the two dates. If the subtracted date is later than the current date, the result will be negative.

Using DateTime.Subtract() Method

Here's how to calculate the difference between two dates using the Subtract() method −

using System;

public class Demo {
   public static void Main() {
      DateTime date1 = new DateTime(2018, 8, 27);
      DateTime date2 = new DateTime(2018, 8, 28);
      
      // getting the difference
      TimeSpan t = date2.Subtract(date1);
      
      Console.WriteLine("TimeSpan: " + t);
      Console.WriteLine("Days (Difference) = {0}", t.TotalDays);
      Console.WriteLine("Hours (Difference) = {0}", t.TotalHours);
      Console.WriteLine("Minutes (Difference) = {0}", t.TotalMinutes);
   }
}

The output of the above code is −

TimeSpan: 1.00:00:00
Days (Difference) = 1
Hours (Difference) = 24
Minutes (Difference) = 1440

Using Subtraction Operator

You can also use the subtraction operator (-) which is equivalent to the Subtract() method −

using System;

public class Demo {
   public static void Main() {
      DateTime startDate = new DateTime(2023, 1, 15, 10, 30, 0);
      DateTime endDate = new DateTime(2023, 1, 18, 14, 45, 30);
      
      // using subtraction operator
      TimeSpan difference = endDate - startDate;
      
      Console.WriteLine("Start Date: " + startDate);
      Console.WriteLine("End Date: " + endDate);
      Console.WriteLine("Difference: " + difference);
      Console.WriteLine("Total Days: " + difference.TotalDays);
      Console.WriteLine("Total Hours: " + difference.TotalHours);
   }
}

The output of the above code is −

Start Date: 1/15/2023 10:30:00 AM
End Date: 1/18/2023 2:45:30 PM
Difference: 3.04:15:30
Total Days: 3.17774305555556
Total Hours: 76.2583333333333

Handling Negative Differences

When the first date is later than the second date, the result will be negative −

using System;

public class Demo {
   public static void Main() {
      DateTime futureDate = new DateTime(2024, 12, 25);
      DateTime pastDate = new DateTime(2024, 12, 20);
      
      TimeSpan difference = pastDate - futureDate;
      
      Console.WriteLine("Future Date: " + futureDate.ToShortDateString());
      Console.WriteLine("Past Date: " + pastDate.ToShortDateString());
      Console.WriteLine("Difference: " + difference);
      Console.WriteLine("Absolute Days: " + Math.Abs(difference.TotalDays));
   }
}

The output of the above code is −

Future Date: 12/25/2024
Past Date: 12/20/2024
Difference: -5.00:00:00
Absolute Days: 5

Common Use Cases

Property Description Example Usage
TotalDays Total difference in days (decimal) Age calculation, duration tracking
TotalHours Total difference in hours (decimal) Work hours calculation
TotalMinutes Total difference in minutes (decimal) Time-based billing systems
Days Whole days component only Calendar applications

Conclusion

The DateTime.Subtract() method and subtraction operator provide easy ways to calculate the difference between two dates in C#. The resulting TimeSpan object offers various properties to access the difference in days, hours, minutes, or other time units as needed for your application.

Updated on: 2026-03-17T07:04:35+05:30

4K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements