在当前时间上增加小时或分钟

30

我想把时间增加到当前时间。

例如,我有问题的时间和预计完成它们的时间。我该如何添加它们?

 (DateTime.Now.ToShortDateString() + ...)
4个回答

63

您可以使用其他变量:

DateTime otherDate = DateTime.Now.AddMinutes(25);
DateTime tomorrow = DateTime.Now.AddHours(25);

11
不知道现在竟然有25小时的一天了 :p - Stormenet
7
第25口井增加的时间“只是一个数字”,并没有改变价值。 - aMazing
@aMazing 除非变量说“明天”,但如果现在是周一的23:05,那么新日期将是周三的00:05,从技术上讲是“后天”。 - Herohtar

19

您可以使用运算符 +-+=-= 对 DateTime 类型进行 TimeSpan 参数的加减操作。

DateTime myDateTime = DateTime.Parse("24 May 2009 02:19:00");

myDateTime = myDateTime + new TimeSpan(1, 1, 1);
myDateTime = myDateTime - new TimeSpan(1, 1, 1);
myDateTime += new TimeSpan(1, 1, 1);
myDateTime -= new TimeSpan(1, 1, 1);

此外,您可以使用一组 "添加" 方法

myDateTime = myDateTime.AddYears(1);                
myDateTime = myDateTime.AddMonths(1);              
myDateTime = myDateTime.AddDays(1);             
myDateTime = myDateTime.AddHours(1);               
myDateTime = myDateTime.AddMinutes(1);            
myDateTime = myDateTime.AddSeconds(1);           
myDateTime = myDateTime.AddMilliseconds(1);       
myDateTime = myDateTime.AddTicks(1);     
myDateTime = myDateTime.Add(new TimeSpan(1, 1, 1)); 

若要了解更多关于DateTime操作的内容,可以查看这个链接,其中有详细的概述。


在紧密循环中,如果您可以重复使用时间跨度对象,则添加时间跨度对象比添加函数更快。 - Matthew Lock

5
您可以将TimeSpan添加到DateTime中,例如:
date + TimeSpan.FromHours(8);

2
请注意,您可以添加“-”符号以向后查找分钟。最初的回答:请注意,在查找分钟时,可以使用减号“-”表示向后查找。
DateTime begin = new DateTime();
begin = DateTime.ParseExact("21:00:00", "H:m:s", null);

if (DateTime.Now < begin.AddMinutes(-15))
{
    //if time is before 19:45:00 show message etc...
}

最初的回答,以及时间向前。
DateTime end = new DateTime();
end = DateTime.ParseExact("22:00:00", "H:m:s", null);


if (DateTime.Now > end.AddMinutes(15))
{
    //if time is greater than 22:15:00 do whatever you want
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接