2013-07-29 16 views
6

Jak mogę sprawdzić za pomocą jakiejś formy if rachunku jeśli pewnego DateTime (znaczy w tym przypadku o nazwie dateAndTime1) przypada przed aktualną datą i godziną, która przypuszczam będą pobierane za pomocą DateTime.Now?Sprawdzenie czy DateTime jest przed DateTime.Now

+0

http://msdn.microsoft.com/en-us/library/system.datetime.compare.aspx .. jest jednym ze sposobów. Jak już inni już zauważyli, zwykle działają też operatorzy porównania. –

+4

Co jest nie tak z 'if (dateAndTime1

Odpowiedz

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

Och, dziękuję, nie zdawałem sobie sprawy, że to było tak proste. – Newbie

3

<, < =,>,> = i == operatorzy pracują na przypadkach DateTime, tak

if(dateAndTime1 < DateTime.Now)

Zauważ, że jeśli porównać to w pętli, jakaś mała wydajność można osiągnąć ustawiając DateTime now = DateTime.Now przed pętli i porównywaniu na now

+1

na swoją notatkę: masz rację, z wyjątkiem przypadku krawędzi, gdzie jest to długotrwały proces, a 'teraz' zawsze musi być bezpośrednim' DateTime.Now'. Dzieje się tak dlatego, że przy ustawianiu zmiennej 'now' będzie ona nieaktualna w długich procesach ... tak jak powiedziałem," przypadek krawędzi ", i prawdopodobnie rzadko doświadczany. –

+0

Dobra sprawa Chase – welegan

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

Inline wag orkowie też.

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

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

Dla dobra wszystkich osób nazwa wyrażenia użytego w twoim przykładzie jest potrójnym wyrażeniem. – Jim

Powiązane problemy