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对象来捕获您的初始时间元素,并使用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()); } } }