我有这个简单的程序:
DateTime aux = new DateTime(2012, 6, 12, 12, 24, 0);
DateTime aux2 = new DateTime(2012, 6, 12, 13, 24, 0);
aux2.AddDays(1);
Console.WriteLine((aux2 - aux).TotalHours.ToString());
Console.ReadLine();
我调试了这个,发现aux2.AddDays(1);
似乎不起作用,我在这里缺少什么?
它应该返回25,但答案是一个。
有什么问题?
AddHours
也不起作用,我猜其他人也不行。
答案 0 :(得分:48)
它确实有效但你没有对返回值做任何事情,试试
aux2 = aux2.AddDays(1);
DateTime
与String
分享这种不变性的方面。
修改强>
在MSDN
上有一个关于它的小段落此方法不会更改此DateTime的值。相反,它 返回一个新的DateTime,其值是此操作的结果。
答案 1 :(得分:4)
DateTime.AddDays
返回添加指定天数的新DateTime。您需要将其分配给您的变量:
aux2 = aux2.AddDays(1);
答案 2 :(得分:0)
DateTime函数是不可变的,一旦将变量设置为等于它,它就不能更改,尽管可以将新变量设置为等于该函数的作用。 AddDay函数接受您放入的变量,但不会更改原始变量,该变量保持不变。因此,您需要将新变量设置为等于原始变量+一天。
所以您真正需要做的就是改变
aux2.AddDays(1);
到
aux2 = aux2.Adddays(1);
然后其他比较功能应该可以工作