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);
DateTime
与String
s分享这个不可变性的方面。
编辑
在MSDN上有一个关于它的小段落
此方法不会更改此DateTime的值。 相反,它返回一个新的DateTime,其值是此操作的结果。
DateTime.AddDays
返回添加指定天数的新DateTime。 您需要将其分配给您的变量:
aux2 = aux2.AddDays(1);
您正在使用不可变函数。
DateTime函数是不可变的,一旦你设置了等于它的变量,它就不能改变,你可以设置新的变量等于函数的工作。 AddDay函数接受您放入其中的变量,但它不会更改原始变量,它仍然是不可变的。 所以你需要设置一个新变量equall到原始变量+一天。
所以你真正需要做的就是改变
aux2.AddDays(1);
至
aux2 = aux2.Adddays(1);
然后其余的比较函数应该工作