22

私はこの簡単なプログラムを持っています:

        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 を返す必要がありますが、答えは 1 です。

何が問題ですか?

AddHours機能しません。他のものも機能していないと思います。

4

3 に答える 3

64

それは機能しますが、戻り値で何もしません。試してみてください

aux2 = aux2.AddDays(1);

DateTimes は、この不変性の面を s と共有していStringます。


編集

MSDNにそれについての小さな段落があります

このメソッドは、この DateTime の値を変更しません。代わりに、値がこの操作の結果である新しい DateTime を返します。

于 2012-07-20T16:43:21.693 に答える
5

DateTime.AddDays指定された日数を加算した新しい DateTime を返します。それを変数に割り当てる必要があります。

aux2 = aux2.AddDays(1);
于 2012-07-20T16:43:31.587 に答える