【问题标题】:C# Finding Next Active Day of WeekC# 查找下一个活跃的星期几
【发布时间】:2011-11-27 03:52:37
【问题描述】:

我正在使用一个 C# 类来表示一个配置文件,其中包含一些调度信息,指示一天中有多少更新,以及用布尔值更新一周中每一天的哪些天。我在这里和其他网站上看到了一些帖子,以查找给定工作日的下一个实例等,但并不是人们正在寻找的日子会有所不同。

例如,我可能会得到一个对象,其中星期一、星期三和星期四为真。找到一周中下一个真实日子的下一个实例的最佳方法是什么?

我可以想出一些冗长而冗长的方法来找到一周中的下一个“真正”的日子,但是有没有一些我不熟悉的更简洁的内置方法可以解决问题?我不想使用任何第三方库,因为这需要信息保障人员的大量特别批准。

【问题讨论】:

    标签: c# datetime scheduling


    【解决方案1】:

    鉴于循环几乎不会花费很长时间,这将是最简单的方法:

    DateTime nextDay = currentDay.AddDays(1);
    while (!profile.IsActive(nextDay.DayOfWeek))
    {
        nextDay = nextDay.AddDays(1);
    }
    

    (假设您已经验证配置文件至少在一天内处于活动状态......否则它将永远循环。)

    【讨论】:

    • @rpax:速度更快,可读性差。如果它被证明是一个瓶颈,那么微优化很好,但我不会这样做。
    • 我也没有。在问题的开头已经解释了
    • @rpax:是的,但那是关于那个问题,而不是这个问题 :) 不过,如果你愿意我这样做,我可能会看看我是否可以为 Noda Time 调整你的代码所以...
    猜你喜欢
    • 2013-03-23
    • 2012-02-19
    • 2014-02-10
    • 1970-01-01
    • 2019-02-23
    • 1970-01-01
    • 2021-06-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多