25

如何从 VB.NET 中的日期对象中减去一个月?

我试过了:

Today.AddMonths(-1)

但是,鉴于今天是 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 结构

对 DateTime 实例的计算(例如 Add 或 Subtract)不会修改实例的值。相反,该计算返回一个新的 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 回答