Ответ 1
В коде, который вы разместили, нет ничего плохого, поэтому все, что вы сделали неправильно, находится где-то еще в коде.
Я вижу только два незначительных недостатка в коде, но они влияют только на угловые случаи:
Вам следует избегать повторного использования свойства DateTime.Now
в коде. Его значение изменяется, поэтому вы можете получить несогласованные результаты в некоторых случаях, когда значения меняются от одного использования к другому.
Чтобы получить временной интервал, вы обычно соединяете один включительно и один эксклюзивный оператор, например >
и <=
, или >=
и <
. Таким образом, вы можете проверять интервалы рядом друг с другом, например 0 - 24 часа и 24 - 28 часов, без получения пробела или перекрытия.
DateTime now = DateTime.Now;
if (myDateTime > now.AddHours(-24) && myDateTime <= now)