Come posso verificare utilizzando qualche forma di if
dichiarazione se un certo DateTime
, (in questo caso chiamato dataAndTime1) è prima della data e ora correnti, che presumo verranno recuperate utilizzando DateTime.Now
?Controllare se un DateTime è prima di DateTime.Ora
risposta
if(dateAndTime1 < DateTime.Now)
{
//do something
}
Oh grazie, non mi rendevo conto che era così semplice – Newbie
il <, < =,>,> = e == operatori lavorano su casi DateTime, quindi
if(dateAndTime1 < DateTime.Now)
Si noti che se si stanno confrontando questo in un ciclo, qualche piccola efficienza può essere acquisita impostando DateTime now = DateTime.Now
prima del ciclo e il confronto contro now
per la tua nota: hai ragione tranne sul caso limite in cui è un processo a lunga esecuzione e 'ora' deve sempre essere il' DateTime.Now' immediato. Questo perché quando si imposta una variabile 'now', sarà stantia nei processi a lunga esecuzione ... come ho detto però," edge case ", e probabilmente raramente sperimentato. –
Buon punto Chase – welegan
if(dateTime1 < DateTime.Now){}
Inline w orchi anche.
// bool variable
bool isHistory = dateAndTime1 < DateTime.Now;
// string return statement
return dateAndTime1 < DateTime.Now ? "History" : "Future";
Giusto per il beneficio di tutti, il nome dell'espressione usata nell'esempio è un'espressione ternaria. – Jim
http://msdn.microsoft.com/en-us/library/system.datetime.compare.aspx .. è un modo. Come altri hanno già sottolineato, anche i soliti operatori di confronto funzionano. –
Cosa c'è di sbagliato in 'if (dateAndTime1