C#:什么是最简单的方法来减去时间?

我试图把一个能帮助我制定工作时间表的工具放在一起。 什么是解决以下问题的最简单方法?

上午8:00 + 5小时=下午1:00

下午5点 – 2点=下午3点

5:30 pm – :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对象来捕获您的初始时间元素,并使用AddHoursAddMinutes等方法。 减去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()); } } }