VB.NET で日付オブジェクトから月を減算するにはどうすればよいですか?
私が試してみました:
Today.AddMonths(-1)
ただし、Today が 2010 年 1 月 1 日であるため、得られる結果は 2010 年 12 月 1 日です。私が望む答えは、2009 年 12 月 1 日です。
.NET フレームワーク内でこれを行う便利な方法はありますか?
VB.NET で日付オブジェクトから月を減算するにはどうすればよいですか?
私が試してみました:
Today.AddMonths(-1)
ただし、Today が 2010 年 1 月 1 日であるため、得られる結果は 2010 年 12 月 1 日です。私が望む答えは、2009 年 12 月 1 日です。
.NET フレームワーク内でこれを行う便利な方法はありますか?
実際には、Today を変数に転送し、その割り当てをそこで機能させる必要があります。次のコードは、あなたが期待する結果を生成します (あなたの投稿が私を二度考えさせたので、私はそれを確認しました)。
Dim dt As DateTime = Date.Today
dt = dt.AddMonths(-2)
Dim x As String = dt.ToString()
これは問題なく動作します。DateTime は不変であることを覚えておく必要があります。
Dim d As DateTime
d = New DateTime(2010, 1, 1)
d = d.AddMonths(-1)
DateTime構造を見てください
Add や Subtract などの DateTime のインスタンスに対する計算では、インスタンスの値は変更されません。代わりに、計算は、値が計算の結果である DateTime の新しいインスタンスを返します。
Dim d As DateTime = #1/1/2010#
d = d.AddMonths(-1)
私は以下を使用しましたが、動作します。
Dim dtToday As DateTime = Date.Today
dtToday = dtToday.AddMonths(-2)