DateTime.AddDays()无法按预期工作

我有这个简单的程序:

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不起作用,我猜其他人也不行。

它确实有效但你没有对返回值做任何事情,试试吧

 aux2 = aux2.AddDays(1); 

DateTimeString s分享这个不可变性的方面。


编辑

在MSDN上有一个关于它的小段落

此方法不会更改此DateTime的值。 相反,它返回一个新的DateTime,其值是此操作的结果。

DateTime.AddDays返回添加指定天数的新DateTime。 您需要将其分配给您的变量:

 aux2 = aux2.AddDays(1); 

您正在使用不可变函数。

DateTime函数是不可变的,一旦你设置了等于它的变量,它就不能改变,你可以设置新的变量等于函数的工作。 AddDay函数接受您放入其中的变量,但它不会更改原始变量,它仍然是不可变的。 所以你需要设置一个新变量equall到原始变量+一天。

所以你真正需要做的就是改变

aux2.AddDays(1);

aux2 = aux2.Adddays(1);

然后其余的比较函数应该工作