菜单

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

2020年1月22日 - 计算机数据

转自 > 摘要:
下文讲述工作中,需要获取指定日期在当月的工作日

/**//**//**//// <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;

下文讲述常规的指定工作日所在月的天数分析,
实现思路:
1 生成一个国家法定假日表(A),非星期六,星期天
2 生成一个国家法定补办表(B),涉及星期六星期天调班
3 生成指定月份的日期流水表(C)
4 获取指定日期的工作日信息,如下所示:

}

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图