С# лучший способ сравнить два раза в день

Мне хотелось узнать, прошло ли определенное время дня. Мне не нравится то, что я делаю:

private static readonly TimeSpan _whenTimeIsOver = new TimeSpan(16,25,00);

internal static bool IsTimeOver()
{
    return DateTime.Now.TimeOfDay.Subtract(_whenTimeIsOver ).Ticks > 0; 
}

Как вы поживаете?

Ответ 1

Как насчет:

internal static bool IsTimeOver()
{
    return DateTime.Now.TimeOfDay > _whenTimeIsOver;
}

Перегрузка оператора очень полезна для работы с датой и временем:) Возможно, вы также захотите рассмотреть возможность создания этого свойства вместо метода.

Немного жаль, что нет

DateTime.CurrentTime

или

TimeSpan.CurrentTime

чтобы избежать DateTime.Now.TimeOfDay (точно так же, как там DateTime.Today), но, увы, нет...

У меня есть набор методов расширения на int в MiscUtil, который сделает инициализацию _whenTimeIsOver neater - d:

private static readonly TimeSpan _whenTimeIsOver = 16.Hours() + 25.Minutes();

Это не каждому на вкус, но мне это нравится...

Ответ 2

if (DateTime.Now.TimeOfDay > _whenTimeIsOver)
    ....