我正在尝试整理一个可以帮助我制定工作时间表的工具。解决以下问题的最简单方法是什么?
上午8:00 + 5小时=下午1:00
和
下午5:00 - 2小时=下午3:00
和
下午5:30 - :45 = 4:45
等等。
答案 0 :(得分:50)
这些都可以用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)
方法。
答案 1 :(得分:23)
在此处查看所有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,它将指定的年数添加到此实例的值中。
答案 2 :(得分:7)
这也有效:
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);
答案 3 :(得分:6)
使用TimeSpan对象捕获初始时间元素,并使用AddHours
或AddMinutes
等方法。要减去3个小时,您将执行AddHours(-3)
。要减去45分钟,您将执行AddMinutes(-45)
答案 4 :(得分:0)
试试这个
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());
}
}
}
答案 5 :(得分:0)
嗨,如果您要从DateTime中仅减去Integer值,则必须编写这样的代码
DateTime.Now.AddHours(-2)
在这里,我将从当前日期和时间中减去2小时