Почему AddMonths() не работает с моим DateTime?(см. код)
-
19-09-2019 - |
Вопрос
Контроллер:
DateTime startDate = DateTime.Now;
ViewData["now"] = startDate.ToString();
ViewData["interval"] = interval.ToString();
startDate.AddMonths(interval);
ViewData["later"] = startDate.ToString();
Вид:
Now: <%=ViewData["now"] %><br />
Later: <%=ViewData["later"] %><br />
Interval: <%=ViewData["interval"] %>
Это дает:
Now: 10/2/2009 12:17:14 PM
Later: 10/2/2009 12:17:14 PM
Interval: 6
Решение
startDate = startDate.AddMonths(interval);
Другие советы
Из документации:
Этот метод не меняет значение этого объекта DateTime.Вместо этого возвращается новый объект DateTime, значение которого является результатом этой операции.
Вы действительно хотите:
ViewData["later"] = startDate.AddMonths(interval).ToString();
или что-то вроде того.
ДобавитьМесяцы возвращает новый DateTime со значением.
startDate = startDate.AddMonths(interval)
вам нужно присвоить результат AddMonths
в переменную. AddMonths
не меняет значение объекта, к которому он был вызван, а скорее возвращает новое DateTime
со значением, полученным в результате операции, оставляющей исходное значение DateTime
стоимость без изменений.
Не связан с StackOverflow