C#: what is the easiest way to subtract time?

Sinaesthetic picture Sinaesthetic · Oct 22, 2010 · Viewed 117.7k times · Source

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

and

5:00pm - 2 hours = 3:00pm

and

5:30pm - :45 = 4:45

and so on.

Answer

Steve Townsend picture Steve Townsend · Oct 22, 2010

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.