计算给定时间段内的正常工作日

需要一些帮助。我需要计算给定日期范围内的正常工作日,例如,在我们的国家/地区,星期一至星期五有5个正常工作日,那么在代码中,我需要在计算中使用星期六和星期天。

我在C#中需要这样的算法:

    int GetRegularWorkingDays(DateTime startDate, DateTime endDate)

{

int nonWorkingDays = ((endDate - startDate) % 7) * 2;

return (endDate - startDate) - nonWorkingDays;

}

我知道我的草案还很遥远:(。预先感谢。=)

回答:

在Code

Project上查看此示例,该示例使用了一种非常高效的方式,不涉及任何循环;)

它使用以下算法:

  1. 计算时间跨度(以周为单位)。叫它W。
  2. 从周数中减去第一周。W = W-1
  3. 将周数乘以每周工作日数。叫D
  4. 找出指定时间段内的假期。叫它H
  5. 计算第一周的天数。称之为SD。
  6. 计算最后一周的天数。ED,叫它
  7. 一整天总结一下。BD = D + SD + ED-H。

以上是 计算给定时间段内的正常工作日 的全部内容, 来源链接: utcz.com/qa/413605.html

回到顶部