Как я вычитаю месяц из объекта даты в VB.NET?
Я попробовал:
Today.AddMonths(-1)
Однако, учитывая, что Сегодня 01 января 2010, результат, который я получаю, 01 декабря 2010. Ответ, который я хочу, 01 декабря 2009.
Существует ли удобный способ сделать это в платформе.NET?
На самом деле вам нужно перенести Today в переменную и позволить этому назначению работать там. Следующий код даст ожидаемый результат (я только что проверил его, потому что ваш пост заставил меня дважды подумать).
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 чья ценность является результатом Расчет.
Я использовал следующее, и это работает.
Dim dtToday As DateTime = Date.Today
dtToday = dtToday.AddMonths(-2)