Почему AddMonths () не работает с моим DateTime? (см код) - PullRequest
2 голосов
/ 02 октября 2009

Контроллер:

        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

Ответы [ 4 ]

17 голосов
/ 02 октября 2009
startDate  = startDate.AddMonths(interval);
5 голосов
/ 02 октября 2009

Из документации:

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

Вы действительно хотите:

ViewData ["позже"] = startDate.AddMonths (интервал) .ToString ();

или что-то в этом роде.

3 голосов
/ 02 октября 2009

вам нужно присвоить результат AddMonths переменной. AddMonths не изменяет значение объекта, к которому он был вызван, а скорее возвращает новое DateTime со значением, которое возникает в результате операции, оставляя исходное значение DateTime без изменений.

3 голосов
/ 02 октября 2009

AddMonths возвращает новый DateTime со значением.

startDate = startDate.AddMonths(interval)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...