-2

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

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

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

1 回答 1

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关于daysif 的定义。

于 2012-06-05T12:50:34.807 回答