Was ist der sauberste Weg zu prüfen, ob ein geliefertes Datum in einem bestimmten Datumsbereich liegt? Zum Beispiel:Der sauberste Weg, um zu prüfen, ob ein Datum in einem Bereich liegt (nullbares Datum)
DateTime? maxDate
DateTime? minDate
DateTime? userDate
Ich möchte überprüfen, ob die Userdate im Bereich liegt. Wobei min oder max null sein kann.
So zum Beispiel:
minDate = new DateTime(2017, 1, 1);
maxDate = null;
userDate = new DateTime(2017, 5, 3);
In diesem Szenario Userdate im Bereich wäre, da es größer ist dann der minDate und kein MaxDate angegeben wurde.
Ich dachte über die Verwendung von DateTime.Compare, aber es scheint, dass ich eine Unordnung von if/then Anweisungen erstellen würde, um userDate zu den minDate- und maxDate-Variablen zu überprüfen, da DateTime.Compare nur zwei Daten gleichzeitig vergleicht.
Gute Antwort. Nebenbei bemerkt sollten Sie [beim Vergleichen von Daten in UTC umrechnen] (https://stackoverflow.com/questions/6930489/safely-comparing-local-and-universal-datetimes) oder sonst könnte es zu einem falschen Vergleich kommen , besonders wenn Sie Zeiten vergleichen, die in die zusätzliche Stunde fallen, die für DST hinzugefügt oder entfernt wird, –
Um das hinzuzufügen, könnten Sie minDate.GetValueOrDefault (DateTime.MinValue) verwenden –