2016-08-03 2 views
0

Ich bin neu in C# und ich verwende Windows-Formulare.Wie kann ich finden, wenn die aktuelle Zeit fallen in Zeitbereich in C#

Jeder weiß wie kann ich finden, wenn die aktuelle Zeit im Zeitbereich in C# fallen.

Zum Beispiel: Ich möchte überprüfen, ob die aktuelle Zeit zwischen 12 Uhr und 4 Uhr morgens ist.

habe ich versucht, den folgenden Code, aber es gibt mir wahre Aussage, wenn die aktuelle Zeit 06.00 ist die nicht korrekt ist:

if (DateTime.Now >= DateTime.Today.AddHours(0) && 
    DateTime.Now <= DateTime.Today.AddHours(4)) 
{ 
    MessageBox.Show("time is between 12am and 4am"); 
} 

Bitte helfen Sie mir. danke

+0

Eigentlich Code, wenn alle verwendeten _DateTime_ Parameter korrekt ist auf den gleichen Tag in Zusammenhang stehen. – Jackdaw

Antwort

2
TimeSpan start = new TimeSpan(00, 0, 0); //12 o'clock am 
    TimeSpan end = new TimeSpan(04, 0, 0); //4 o'clock am 
    TimeSpan now = DateTime.Now.TimeOfDay; 
    if ((now > start) && (now < end)) 
    { 
    MessageBox.Show("time is between 12am and 4am"); 
    } 
1

DateTime.Compare nimmt zwei datetimes auf und vergleicht sie. Wenn der erste nach oder nach dem zweiten ist, gibt er 1 zurück; Wenn es früher als die Sekunde ist, gibt es -1 zurück. Ansonsten gibt es 0

if (DateTime.Compare(DateTime.Now, DateTime.Today.AddHours(0)) > 0 && DateTime.Compare(DateTime.Now, DateTime.Today.AddHours(4)) < 0) 
{ 
    MessageBox.Show("time is between 12am and 4am"); 
} 
2
if(DateTime.Now.Hour >= 0 & DateTime.Now.Hour < 4) 

nur

getestet
Debug.WriteLine(DateTime.Now.Hour); 
if(DateTime.Now.Hour >= 0 & DateTime.Now.Hour < 4) 
    Debug.WriteLine("in"); 
else 
    Debug.WriteLine("out"); 
+0

Ich habe es versucht, aber es gibt ein falsches Ergebnis. also, wenn die Zeit jetzt 20 Uhr ist, gibt es immer noch wahre Aussage – Kate

+0

@Kate ich gerade getestet und es funktioniert für mich – Paparazzi

Verwandte Themen