2013-07-29 26 views
6

Wie kann ich mit einer Form von if Anweisung prüfen, ob eine bestimmte DateTime, (sagen wir in diesem Fall dateAndTime1 genannt) vor dem aktuellen Datum und Uhrzeit, die ich voraussichtlich mit abgerufen werden DateTime.Now?Überprüfen, ob eine DateTime vor DateTime.Now ist

+0

http://msdn.microsoft.com/en-us/library/system.datetime.compare.aspx .. ist eine Möglichkeit. Wie andere bereits festgestellt haben, arbeiten auch die üblichen Vergleichsoperatoren. –

+4

Was ist falsch mit 'if (dateAndTime1

Antwort

23
if(dateAndTime1 < DateTime.Now) 
{ 
    //do something 
} 
+0

Oh danke, ich wusste nicht, dass es so einfach war – Newbie

3

die <, < =,>,> = und == Operatoren Arbeit auf Datetime-Instanzen, so

if(dateAndTime1 < DateTime.Now)

Beachten Sie, dass, wenn Sie dies in einer Schleife vergleichen, können einige kleine Effizienz gewonnen werden durch DateTime now = DateTime.Now vor der Schleife Einstellung und durch Vergleichen gegen now

+1

für Ihre Notiz: Sie haben Recht, außer auf der Kante Fall, wo es ein langwieriger Prozess ist und "jetzt" muss immer die unmittelbare "DateTime.Now" sein. Dies liegt daran, dass beim Setzen einer 'now'-Variable es in lang laufenden Prozessen abgestanden ist ... wie ich schon sagte," edge case ", und wahrscheinlich selten erlebt. –

+0

Guter Punkt Chase – welegan

2
if(dateTime1 < DateTime.Now){} 
1

Inline w Orks auch.

// bool variable 
bool isHistory = dateAndTime1 < DateTime.Now; 

// string return statement 
return dateAndTime1 < DateTime.Now ? "History" : "Future"; 
+1

Nur für jedermanns Nutzen ist der Name für den in Ihrem Beispiel verwendeten Ausdruck ein ternärer Ausdruck. – Jim

Verwandte Themen