Как вычитаться в месяц от имени даты?
-
25-09-2019 - |
Вопрос
Как я вычитаю месяц от объекта даты в 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)