2011-11-20 9 views
61

Ho un codice:come ottenere ieri e domani datetime in C#

int MonthNow = System.DateTime.Now.Month; 
int YearNow = System.DateTime.Now.Year; 
int DayNow = System.DateTime.Now.Day; 

Come posso ottenere ieri e domani il giorno, il mese e l'anno in C#?

Naturalmente, posso solo scrivere:

DayTommorow = DayNow +1; 

ma può succedere che domani è altro mese o anno. Ci sono strumenti incorporati in C# per scoprirlo ieri e oggi?

+0

Il problema con 'DayNow + 1' o' - 1' è se è il primo dell'ultimo giorno del mese in cui questo non funzionerà. DateTime.Now.Day è solo una rappresentazione intera del giorno corrente. –

risposta

54

Potete trovare queste informazioni nel API reference.

var today = DateTime.Now; 
var tomorrow = today.AddDays(1); 
var yesterday = today.AddDays(-1); 
+27

Si prega di inviare, se possibile, la parte pertinente del sito Web collegato anziché * solo * che collega al sito web – JMax

+0

JMax, Sure. Il collegamento è per il metodo DateTime.AddDays, che consente di aggiungere/sottrarre giorni.Questo è più facile da usare nel contesto della domanda, rispetto al metodo DateTime.Add più generico. – Tabrez

+5

... e quella potrebbe essere la parte dettagliata della tua risposta :). – C4u

12

Si desidera DateTime.Today.AddDays(1).

2

Il trucco è utilizzare "DateTime" per manipolare le date; usa solo interi e stringhe quando hai bisogno di un "risultato finale" dalla data.

Per esempio (pseudo codice):

  1. Get "DateTime domani = ora + 1"

  2. data, giorno della settimana, il giorno del mese Determinare - quello che vuoi - della risultante Data.

145
DateTime tomorrow = DateTime.Now.AddDays(1); 
DateTime yesterday = DateTime.Now.AddDays(-1); 
+11

Questa risposta dimostra come la denominazione è importante. – eomeroff

11

Usa DateTime.AddDays() (MSDN Documentation DateTime.AddDays Method).

DateTime tomorrow = DateTime.Now.AddDays(1); 
DateTime yesterday = DateTime.Now.AddDays(-1); 
+3

Il tuo ieri è "24 ore fa". Usa DateTime.Today per segnare un giorno in modo std. –

14

Oggi:

DateTime.Today

Domani:

DateTime.Now.AddDays(1) 

Ieri:

DateTime.Now.AddDays(-1) 
+2

Sì, funzionerà anche. – aleroot

12

Si dovrebbe fare in questo modo, se si vuole ottenere ieri e domani alle 00:00:00 tempo:

DateTime yesterday = DateTime.Today.AddDays(-1); 
DateTime tomorrow = DateTime.Today.AddDays(1); // Output example: 6. 02. 2016 00:00:00 

Basta nudo in mente che se si fa in questo modo:

DateTime yesterday = DateTime.Now.AddDays(-1); 
DateTime tomorrow = DateTime.Now.AddDays(1); // Output example: 6. 02. 2016 18:09:23 

quindi otterrete l'ora corrente meno un giorno, e non ieri alle 00:00:00.

Problemi correlati