【问题标题】:C# best way to compare two time of the dayC#比较一天中两个时间的最佳方法
【发布时间】:2009-09-11 14:13:39
【问题描述】:

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

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

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

你好吗?

【问题讨论】:

    标签: c# datetime timespan


    【解决方案1】:

    怎么样:

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

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

    没有一个有点可惜

    DateTime.CurrentTime
    

    TimeSpan.CurrentTime
    

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

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

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

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

    【讨论】:

    • 好吧,我以为我们不能比较 DateTime 和 TimeSpan 对象,我错了。我喜欢初始化。
    • @Duaner:你不是在比较 DateTimeTimeSpan - 你是在比较两个 TimeSpansTimeOfDay 属性返回 TimeSpan
    【解决方案2】:
    if (DateTime.Now.TimeOfDay > _whenTimeIsOver)
        ....
    

    【讨论】:

    • 我的速度更快,但我最初的答案包含一个小错误:)
    猜你喜欢
    • 1970-01-01
    • 2018-04-03
    • 2022-01-01
    • 2013-01-01
    • 1970-01-01
    • 2012-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多