计算两个日期之间的工作日数

摘要:
/**//**//**///////计算两个日期之间的工作天数,以及dt1和dt2之间的工作日数(周六、周日,不包括工作日)。dt3-dt4的时间是公共假日。在这里,公共假日可以用作数组,或从xml表中读取,以扣除///////要计算的开始时间//要计算的结束时间˂/

/**//**//**//// <summary>
/// 计算两个日期之间的工作日数,(星期6,星期天,不算工作日)dt1和dt2之间相隔多少工作日,其中dt3-dt4的时间为公休日,这里公休日可以用以个数组,或者从一个xml表里面读取,以便扣除
/// </summary>
/// <param name="dt1">要计算的起始时间</param>
/// <param name="dt2">要计算的结束时间</param>
/// <param name="dt3">公休起始时间</param>
/// <param name="dt4">公休结束时间</param>
/// <returns>intReturn</returns>
private int DifferDate(DateTime dt1,DateTime dt2,DateTime dt3,DateTime dt4)
{
int intReturn=0;//返回值,即dt2和dt1之间的工作日数

System.TimeSpan tsDiffer=dt2.Date-dt1.Date;//计算dt2和dt1之间相差多少天
int intDiffer=tsDiffer.Days;//相差天数的int值
for(int i=0;i<intDiffer;i++)//从dt1开始一天天加,判断临时的日期值是不是星期六或星期天,如果既不是星期六,也不是星期天,而且也不在dt3和dt4之间,则该天为工作日,intReturn加1
{
    DateTime dtTemp=dt1.Date.AddDays(i);
    if((dtTemp.DayOfWeek!=System.DayOfWeek.Sunday) && (dtTemp.DayOfWeek!=System.DayOfWeek.Saturday))
    {
        if((dtTemp.Date<dt3.Date) || (dtTemp.Date>dt4.Date))
        {
            intReturn++;
        }
    }
   
}
return intReturn;

}

免责声明:文章转载自《计算两个日期之间的工作日数》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Oracle 中truncate与delete的区别[转]CRLF注入原理下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

Debian 命令行方式配置网络

确保未在文件/etc/network/interfaces中手动配置网络,即应删除上述1和2中配置的内容。打开nmtui的图形界面并直接进行配置。当然,您也可以在此处设置无线连接。...

利用adb实时查看应用日志

出现乱码解决办法:就是通过chcp命令改变代码页,UTF-8的代码页为65001,输入命令:,执行该操作后,代码页就被变成UTF-8了。...

Latex 双栏模式下表格太长怎么办?

有时一张桌子放不下任何一页。如果使用原始表包,它可能会溢出。因此,自动更改表格是很自然的。对于许多在线材料,建议使用Longtable。但是因为我的文章是双栏文章,所以这个包会有问题。例如,表格将只浮动在文本上,标题的显示也有问题。经过长时间的尝试,我终于找到了解决方案,而且非常简单。只需缩放表格。方法如下:egin{table*}[!...

Idea常用插件整合

官方网站:https://plugins.jetbrains.com/plugin/228-sql-query-plugin6.IdeaVim基于IntelliJ的Vim仿真插件。注意:如果打开WebInspector,那么CSS/JavaScript同步和元素高亮显示不起作用“pluginisdebuggingthistab”信息栏的可用性问题官方网站:h...

PCL点云分割(2)

点云的分割是我想做的机器人手臂捕捉的一个非常重要的部分,因此首先要了解,如果我使用点云库来处理我用kinect获得的点云数据,这个例程也是由我自己慢慢修改程序并结合官方API的解释来实现的。如果我直接更改源程序,由于数据类型、头文件和其他原因,其中的许多细节可能无法编译,我们将很难找出错误。首先,让我们看看我自己设定的场景。然后我使用Kinect获取数据并观...

PowerQuery清理非文件名字符(清除指定列表中的所有字符)

在左侧导航窗格的空白区域右击,依次找到空白查询项接下来的思路是:遍历列表SearchList中的所有项,依次清理Data表中所有想要处理的列。第三个参数是一个函数:它告诉List.Accumulate函数,在每一次使用SearchList中某一项操作Data表时,其操作的方式是如何的。...