因项目需要,要在.net中用c#实现计算两个时间段的工作日总数,计算逻辑如下,
两个日期之间的星期6,星期天算休息日,不算工作日,同时可以在后台设置多段时间为公休日,比如2005-10-1至2005-10-7号为公休日,公休的日期在后台通过数据库维护。(该计算逻辑可能不能百分百涵盖工作日,有可能会在星期6或星期天也上班,大家可以根据该逻辑引申,我先抛砖引玉)
开始在网上想找相关资料,没有发现有相关内容,自己花了点时间研究了下System.DateTime类和System.TimeSpan 类,简单实现了该逻辑.System.DateTime类估计大家都应该比较熟悉,System.TimeSpan是表示一个时间间隔,俺以前没怎么用过,大家可以查查msdn.
实现的函数如下:
调用示例如下(大家可以在数据库中设置dt3,dt4,来动态设置公休日):