Warum ist nicht AddMonths () die Arbeit an meinem Datetime? (Siehe Code)
-
19-09-2019 - |
Frage
Controller:
DateTime startDate = DateTime.Now;
ViewData["now"] = startDate.ToString();
ViewData["interval"] = interval.ToString();
startDate.AddMonths(interval);
ViewData["later"] = startDate.ToString();
Ausblick:
Now: <%=ViewData["now"] %><br />
Later: <%=ViewData["later"] %><br />
Interval: <%=ViewData["interval"] %>
Dies ergibt:
Now: 10/2/2009 12:17:14 PM
Later: 10/2/2009 12:17:14 PM
Interval: 6
Lösung
startDate = startDate.AddMonths(interval);
Andere Tipps
Aus der Dokumentation:
Diese Methode ändert nicht den Wert dieses Datetime-Objekt. Stattdessen wird ein neues Datetime-Objekt zurückgegeben, dessen Wert das Ergebnis dieser Operation.
Sie wirklich wollen:
Viewdata [ "später"] = startDate.AddMonths (Intervall) .ToString ();
oder so ähnlich.
AddMonths gibt ein neues Datetime mit der Wert.
startDate = startDate.AddMonths(interval)
Sie müssen das Ergebnis der AddMonths
einer Variablen zugewiesen werden soll. AddMonths
nicht den Wert des Objekts ändert sie aufgerufen wurden, sondern gibt einen neuen DateTime
mit dem Wert, der aus dem Betrieb führt unverändert den ursprünglichen DateTime
Wert zu verlassen.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow