Как вычесть месяц из объекта Даты?

Как я вычитаю месяц из объекта даты в VB.NET?

Я попробовал:

Today.AddMonths(-1)

Однако, учитывая, что Сегодня 01 января 2010, результат, который я получаю, 01 декабря 2010. Ответ, который я хочу, 01 декабря 2009.

Существует ли удобный способ сделать это в платформе.NET?

24
задан Andrew 3 February 2010 в 04:28
поделиться

4 ответа

На самом деле вам нужно перенести Today в переменную и позволить этому назначению работать там. Следующий код даст ожидаемый результат (я только что проверил его, потому что ваш пост заставил меня дважды подумать).

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

Dim x As String = dt.ToString()
43
ответ дан 28 November 2019 в 23:08
поделиться

Это работает нормально, вам нужно помнить, что DateTime ismutable.

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

посмотрите на структуру

расчет на экземпляре DateTime, такой как добавление или вычесть, не изменяет значение пример. Вместо этого расчет Возвращает новый экземпляр DateTime чья ценность является результатом Расчет.

8
ответ дан 28 November 2019 в 23:08
поделиться

Я использовал следующее, и это работает.

Dim dtToday As DateTime = Date.Today
dtToday = dtToday.AddMonths(-2)
0
ответ дан 28 November 2019 в 23:08
поделиться
Dim d As DateTime = #1/1/2010#
d = d.AddMonths(-1)
1
ответ дан 28 November 2019 в 23:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: