25

VB.NET で日付オブジェクトから月を減算するにはどうすればよいですか?

私が試してみました:

Today.AddMonths(-1)

ただし、Today が 2010 年 1 月 1 日であるため、得られる結果は 2010 年 12 月 1 日です。私が望む答えは、2009 年 12 月 1 日です。

.NET フレームワーク内でこれを行う便利な方法はありますか?

4

4 に答える 4

44

実際には、Today を変数に転送し、その割り当てをそこで機能させる必要があります。次のコードは、あなたが期待する結果を生成します (あなたの投稿が私を二度考えさせたので、私はそれを確認しました)。

Dim dt As DateTime = Date.Today
dt = dt.AddMonths(-2)

Dim x As String = dt.ToString()
于 2010-02-03T04:34:37.773 に答える
8

これは問題なく動作します。DateTime は不変であることを覚えておく必要があります。

Dim d As DateTime
d = New DateTime(2010, 1, 1)
d = d.AddMonths(-1)

DateTime構造を見てください

Add や Subtract などの DateTime のインスタンスに対する計算では、インスタンスの値は変更されません。代わりに、計算は、値が計算の結果である DateTime の新しいインスタンスを返します。

于 2010-02-03T04:36:25.297 に答える
1
Dim d As DateTime = #1/1/2010#
d = d.AddMonths(-1)
于 2010-02-03T14:43:20.587 に答える
0

私は以下を使用しましたが、動作します。

Dim dtToday As DateTime = Date.Today
dtToday = dtToday.AddMonths(-2)
于 2010-02-03T05:17:13.727 に答える