Search code examples
c#datetimemathtimespan

What is the easiest way to subtract time in C#?


I'm trying to put together a tool that will help me make work schedules. What is the easiest way to solve the following?

  • 8:00am + 5 hours = 1:00pm
  • 5:00pm - 2 hours = 3:00pm
  • 5:30pm - :45 = 4:45

and so on.


Solution

  • These can all be done with DateTime.Add(TimeSpan) since it supports positive and negative timespans.

    DateTime original = new DateTime(year, month, day, 8, 0, 0);
    DateTime updated = original.Add(new TimeSpan(5,0,0));
    
    DateTime original = new DateTime(year, month, day, 17, 0, 0);
    DateTime updated = original.Add(new TimeSpan(-2,0,0));
    
    DateTime original = new DateTime(year, month, day, 17, 30, 0);
    DateTime updated = original.Add(new TimeSpan(0,-45,0));
    

    Or you can also use the DateTime.Subtract(TimeSpan) method analogously.