我正在尝试制作一个可以帮助我制作工作时间表的工具。解决以下问题最简单的方法是什么?
- 8:00am+5小时=1:00pm
- 5:00pm-2小时=3:00pm
- 5:30pm-45分钟=4:45pm
等等。
由于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对象,该对象将指定年数添加到此实例的值中。
你好,如果你想从DateTime中减去整数值,那么你需要编写类似这样的代码:
DateTime.Now.AddHours(-2)
在这里,我从当前日期和时间中减去了2小时
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);
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());
}
}
}
TimeLeftToOpen = new TimeSpan(TimeLeftToOpen.Hours, TimeLeftToOpen.Minutes, TimeLeftToOpen.Seconds - 1);
。