VB.NETで日付オブジェクトから1か月を減算するにはどうすればよいですか?
私が試してみました:
Today.AddMonths(-1)
ただし、今日が2010年1月1日であることを考えると、結果は2010年12月1日になります。 2009年12月1日です。
.NETフレームワーク内でこれを行う便利な方法はありますか?
実際には、Todayを変数に転送して、その割り当てをそこで機能させる必要があります。次のコードは期待どおりの結果を生成します(投稿を2回考えさせたため、検証しました)。
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 Structure をご覧ください
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)