C #: что является самым простым способом вычитать время?

Я пытаюсь собрать инструмент, который поможет мне составить график работы. Какой самый простой способ решить следующее?

8:00 + 5 часов = 13:00

а также

17:00 – 2 часа = 3:00 вечера

а также

17:30 -: 45 = 4:45

и так далее.

Все это можно сделать с помощью DateTime.Add(TimeSpan) поскольку он поддерживает положительные и отрицательные интервалы времени.

 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)); 

Или вы также можете использовать метод DateTime.Subtract(TimeSpan) аналогичным образом.

Ознакомьтесь со всеми методами DateTime здесь: http://msdn.microsoft.com/en-us/library/system.datetime.aspx

Add Возвращает новое значение DateTime, которое добавляет значение указанного TimeSpan к значению этого экземпляра.

AddDays Возвращает новое значение DateTime, которое добавляет указанное количество дней к значению этого экземпляра.

AddHours Возвращает новое значение DateTime, которое добавляет указанное количество часов к значению этого экземпляра.

AddMilliseconds Возвращает новое значение DateTime, которое добавляет указанное количество миллисекунд к значению этого экземпляра.

AddMinutes Возвращает новое значение DateTime, которое добавляет указанное количество минут к значению этого экземпляра.

AddMonths Возвращает новое значение DateTime, которое добавляет указанное количество месяцев к значению этого экземпляра.

AddSeconds Возвращает новое значение DateTime, которое добавляет указанное количество секунд к значению этого экземпляра.

AddTicks Возвращает новое значение DateTime, которое добавляет указанное количество тиков к значению этого экземпляра.

AddYears Возвращает новое значение DateTime, которое добавляет указанное количество лет к значению этого экземпляра.

Это тоже работает:

 System.DateTime dTime = DateTime.Now(); // tSpan is 0 days, 1 hours, 30 minutes and 0 second. System.TimeSpan tSpan = new System.TimeSpan(0, 1, 3, 0); System.DateTime result = dTime + tSpan; 

Чтобы вычесть год:

 DateTime DateEnd = DateTime.Now; DateTime DateStart = DateEnd - new TimeSpan(365, 0, 0, 0); 

Используйте объект TimeSpan для захвата вашего начального элемента времени и используйте такие методы, как AddHours или AddMinutes . Чтобы вычесть 3 часа, вы будете делать AddHours(-3) . Чтобы вычесть 45 минут, вы будете делать AddMinutes(-45)

попробуй это

 namespace dateandtime { class DatesTime { public static DateTime Substract(DateTime now, int hours,int minutes,int seconds) { TimeSpan T1 = new TimeSpan(hours, minutes, seconds); return now.Subtract(T1); } static void Main(string[] args) { Console.WriteLine(Substract(DateTime.Now, 36, 0, 0).ToString()); } } } 
Давайте будем гением компьютера.