Pourquoi ne pas AddMonths () travaillant sur mon DateTime? (Voir code)
-
19-09-2019 - |
Question
Contrôleur:
DateTime startDate = DateTime.Now;
ViewData["now"] = startDate.ToString();
ViewData["interval"] = interval.ToString();
startDate.AddMonths(interval);
ViewData["later"] = startDate.ToString();
Voir:
Now: <%=ViewData["now"] %><br />
Later: <%=ViewData["later"] %><br />
Interval: <%=ViewData["interval"] %>
On obtient ainsi:
Now: 10/2/2009 12:17:14 PM
Later: 10/2/2009 12:17:14 PM
Interval: 6
La solution
startDate = startDate.AddMonths(interval);
Autres conseils
De la documentation:
Cette méthode ne change pas la valeur de cet objet DateTime. Au lieu de cela, un nouvel objet DateTime est retourné dont la valeur est le résultat de cette opération.
Vous voulez vraiment:
Viewdata [ "plus tard"] = startDate.AddMonths (intervalle) .ToString ();
ou quelque chose comme ça.
AddMonths retourne un nouveau DateTime avec le valeur.
startDate = startDate.AddMonths(interval)
vous devez affecter le résultat de la AddMonths
à une variable. AddMonths
ne change pas la valeur de l'objet, il a été appelé, mais retourne une nouvelle DateTime
avec la valeur qui résulte de l'opération en laissant la valeur DateTime
initiale inchangée.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow