需要一些帮助。我需要计算给定日期范围内的正常工作日,例如,在我们的国家/地区,星期一至星期五有5个正常工作日,那么在代码中,我需要在计算中使用星期六和星期天。
我在C#中需要这样的算法:
int GetRegularWorkingDays(DateTime startDate, DateTime endDate) { int nonWorkingDays = ((endDate - startDate) % 7) * 2; return (endDate - startDate) - nonWorkingDays; }
我知道我的草案还很遥远:(。预先感谢。=)
PS:各位,请在下面对最佳/最快/最有效的答案进行投票。 谢谢=)
在Code Project上查看此示例,该示例使用了一种非常高效的方式,不涉及任何循环;)
它使用以下算法:
计算时间跨度(以周为单位)。叫它W。 从周数中减去第一周。W = W-1 将周数乘以每周工作日数。叫D 找出指定时间段内的假期。叫它H 计算第一周的天数。称之为SD。 计算最后一周的天数。ED,叫它 一整天总结一下。BD = D + SD + ED-H。