c#时隙计算(今日给定日期)

时间:2012-06-05 12:45:32

标签: c# .net datetime dayofweek

我正在准备一个计算图书馆惩罚的课程。例如: 我有一本书。我将在12.11.2009返回这本书。但我推迟了这个回归日期。我于2009年11月30日归还了这本书。我将支付罚款作为金钱。 我如何计算(11月31日 - 11月12日)c#?

罚款应仅在营业日计算。这意味着我的计算应该考虑周末和国家法定假日。

    <Holiday Date="25.11.2009"/>
    <Holiday Date="26.11.2009"/>
    <Holiday Date="27.11.2009"/>

1 个答案:

答案 0 :(得分:2)

public int CountBusinessDaysBetween(DateTime start, DateTime end) {
    int days = end.Subtract(start).Days;
    return Enumerable.Range(0, days)
                     .Select(day => start.AddDays(day))
                     .Where(date => date.IsBusinessDay())
                     .Count();
}

当然,必须自己编码IsBusinessDay。我不知道你对工作日的定义是什么。 高度本地化。

此外,我不知道您是否要包含或不计算,因此如果是+ 1,您可能需要days