Вопрос

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

Я пытался:

Today.AddMonths(-1)

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

Есть ли удобный способ сделать это в рамках .NET Framework?

Это было полезно?

Решение

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

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

Dim x As String = dt.ToString()

Другие советы

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

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

Посмотри на Структура DateTime

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

Dim d As DateTime = #1/1/2010#
d = d.AddMonths(-1)

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

Dim dtToday As DateTime = Date.Today
dtToday = dtToday.AddMonths(-2)
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top