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

时间:2012-07-20 16:41:49

标签: c# visual-studio-2010 datetime

我有这个简单的程序:

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

3 个答案:

答案 0 :(得分:48)

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

aux2 = aux2.AddDays(1);

DateTimeString分享这种不变性的方面。


修改

MSDN

上有一个关于它的小段落
  

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

答案 1 :(得分:4)

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

aux2 = aux2.AddDays(1);

答案 2 :(得分:0)

您正在使用不可变的函数。

DateTime函数是不可变的,一旦将变量设置为等于它,它就不能更改,尽管可以将新变量设置为等于该函数的作用。 AddDay函数接受您放入的变量,但不会更改原始变量,该变量保持不变。因此,您需要将新变量设置为等于原始变量+一天。

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

aux2.AddDays(1);

aux2 = aux2.Adddays(1);

然后其他比较功能应该可以工作