Perché non è AddMonths () che lavorano sul mio DateTime? (Vedi codice)
-
19-09-2019 - |
Domanda
Controller:
DateTime startDate = DateTime.Now;
ViewData["now"] = startDate.ToString();
ViewData["interval"] = interval.ToString();
startDate.AddMonths(interval);
ViewData["later"] = startDate.ToString();
Visualizza:
Now: <%=ViewData["now"] %><br />
Later: <%=ViewData["later"] %><br />
Interval: <%=ViewData["interval"] %>
Questo produce:
Now: 10/2/2009 12:17:14 PM
Later: 10/2/2009 12:17:14 PM
Interval: 6
Soluzione
startDate = startDate.AddMonths(interval);
Altri suggerimenti
Dalla documentazione:
Questo metodo non cambia il valore di questo oggetto DateTime. Invece, viene restituito un nuovo oggetto DateTime il cui valore è il risultato di questa operazione.
Si vuole veramente:
Viewdata [ "dopo"] = startDate.AddMonths (intervallo) .ToString ();
o qualcosa del genere.
AddMonths restituisce un nuovo DateTime con la valore.
startDate = startDate.AddMonths(interval)
è necessario assegnare il risultato della AddMonths
a una variabile. AddMonths
non cambia il valore dell'oggetto è stato chiamato, ma piuttosto restituisce una nuova DateTime
con il valore risultante dall'operazione lasciando il valore DateTime
originale invariata.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow