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

Sas*_*iel 14 c# datetime visual-studio-2010

我有这个简单的程序:

        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();
Run Code Online (Sandbox Code Playgroud)

我调试了这个,发现aux2.AddDays(1);似乎不起作用,我在这里缺少什么?它应该返回25但答案是一个.

问题是什么?

也AddHours行不通,我猜其他人也不行.

Jod*_*ell 48

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

aux2 = aux2.AddDays(1);
Run Code Online (Sandbox Code Playgroud)

DateTime与s分享这种不变性String的方面.


编辑

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

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

  • @SasGabriel,请注意 .NET <= 2.0 中的工具提示/文档具有误导性,指出`DateTime.Add()`“将指定的天数添加到此实例的值中。” 尽管行为方式完全相同。 (3认同)

Zbi*_*iew 5

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

aux2 = aux2.AddDays(1);
Run Code Online (Sandbox Code Playgroud)