我正在准备一个计算图书馆惩罚的课程。例如: 我有一本书。我将在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"/>
答案 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
。