2016-05-04 6 views
-1

Ich habe eine Methode, die überprüft, ob die aktuelle Zeit größer ist als 00 (Mitternacht). wenn ich wieder richtig bin dann sende ich eine email, wenn nicht dann schicke ich es nicht. Letzte Nacht habe ich 40 E-Mails bekommen, die nicht gesendet werden sollten.Wie überprüft man, dass die aktuelle Uhrzeit nicht größer als Mitternacht ist?

Ich habe versucht, diese beiden Versuche:

TimeSpan max = new TimeSpan(00, 0, 0); 
    TimeSpan now = DateTime.Now.TimeOfDay; 

    if (now > max) 
     return false; 

    return true; 

Und dies:

TimeSpan max = new TimeSpan(24, 0, 0); 
TimeSpan now = DateTime.Now.TimeOfDay; 
if (now> max) 
    return false; 

return true; 

Im ersten Fall ich, dass jetzt bekommen ist immer und überall größer als max und in der zweiten erhalte ich jetzt, dass immer weniger als max.

ich will meine Methode true zurück, wenn die Zeit zwischen 07-24

Andere Fall ist i falsch zurückgeben möchten.

Wie mache ich das?

+0

Vergessen Sie die ganze „nach Mitternacht“ sache (was ist das selbst _mean_ - jedes Mal ist nach Mitternacht), und überarbeiten Sie es stattdessen zu Ihrer tatsächlichen Anforderung: _ "zurück wahr, wenn die Zeit zwischen 07-24 ist" _ Überprüfen Sie einfach, ob die aktuelle Stunde in diesem Bereich ist. –

+0

Können Sie "größer als Mitternacht" definieren? In Bezug auf was? –

+4

Denkst du darüber nach einen Mogwai zu füttern? – Default

Antwort

1

Wenn Sie zwischen dem 7. und 24. Stunde wollen, überprüfen Sie die aktuelle Stunde, ignorieren den Rest der Datum und Uhrzeit Bits

siehe: https://dotnetfiddle.net/1LCvRP

public bool IsHourInRange() 
{ 
    var currentHour = DateTime.Now.Hour; 
    return currentHour >= 7; 
} 
+0

Aber ... es ist immer noch korrekt. Um 7 Uhr wird die "Stunde" 7 sein. Um 12:15 Uhr ist die Stunde Null. – CaffGeek

+0

Bin ich richtig in der Annahme, dass um 12:01 die Stunde auch Null sein wird? – ThunD3eR

+1

Sie meinen eine Minute nach Mitternacht? Ja – CaffGeek