なぜ私のDateTimeに取り組んでAddMonths()ではないのですか? (コードを参照のこと)

StackOverflow https://stackoverflow.com/questions/1510552

質問

コントローラーます:

        DateTime startDate = DateTime.Now;

        ViewData["now"] = startDate.ToString();
        ViewData["interval"] = interval.ToString();

        startDate.AddMonths(interval);

        ViewData["later"] = startDate.ToString();

表示:

Now: <%=ViewData["now"] %><br />

Later: <%=ViewData["later"] %><br />

Interval: <%=ViewData["interval"] %>

この利回ります:

Now: 10/2/2009 12:17:14 PM
Later: 10/2/2009 12:17:14 PM
Interval: 6
役に立ちましたか?

解決

startDate  = startDate.AddMonths(interval);

他のヒント

ドキュメントから:

このメソッドは、このDateTimeオブジェクトの値を変更しません。代わりに、新しいDateTimeオブジェクトは、その値がこの操作の結果で返されます。

あなたが本当に欲しいます:

ViewDataを[ "後"] = startDate.AddMonths(間隔).ToString();

またはそのような何かます。

AddMonths にして新しいのDateTimeを返します。値ます。

startDate = startDate.AddMonths(interval)

あなたは変数にAddMonthsの結果を割り当てる必要があります。 AddMonthsはそれがコールされたオブジェクトの値を変更するのではなく、そのまま元DateTime値を残して操作した値を持つ新しいDateTimeを返しません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top