11

我想知道一天中的指定时间是否已过。我真的不喜欢我正在做的事情:

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

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

你好吗?

4

2 回答 2

24

怎么样:

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

运算符重载对于日期和时间工作非常有帮助 :) 您可能还想考虑将其作为属性而不是方法。

有点遗憾的是没有

DateTime.CurrentTime

或者

TimeSpan.CurrentTime

避免DateTime.Now.TimeOfDay(就像有一样DateTime.Today)但是唉,不......

int我在MiscUtil中有一组扩展方法,可以使初始化_whenTimeIsOver更整洁 - 你可以使用:

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

这不是每个人的口味,但我喜欢它......

于 2009-09-11T14:15:45.000 回答
14
if (DateTime.Now.TimeOfDay > _whenTimeIsOver)
    ....
于 2009-09-11T14:15:19.773 回答