工作日"/>
C#中 DateTime加(减)工作日
前几天工作上有安排一个发邮件功能的任务
涉及到查询当天前几个工作日的采购任务
private void timer_Elapsed(object sender, ElapsedEventArgs e){DateTime dtEnd= DateTime.Parse("2019-10-28");AddWorkDays(dtEnd, 3);//三个工作日//测试if (DateTime.Now.ToString("HH:mm") == "18:00"){//DateTime dtEnd = DateTime.Parse("2019-10-28");AddWorkDays(DateTime.Now, 3);//三个工作日}}
上面是发邮件设定的时间
下面是计算工作日的方法
/// <summary>/// DateTime 减几个工作日(不包括周未)/// </summary>/// <param name="dt">指定时间</param>/// <param name="addDays">需要加减天数</param>/// <returns></returns>public DateTime AddWorkDays(DateTime dt, int addDays){DateTime dtStart = dt;DateTime dtEnd = dtStart.AddDays(-addDays);//我这做的是指定几个工作日前的时间int days = CalculateWeekendDays(dtStart, dtEnd);while (days > 0){dtStart = dtEnd;dtEnd = dtEnd.AddDays(-days);days = CalculateWeekendDays(dtStart, dtEnd);}SelectUserDiff(dtEnd);//我发邮件的方法以及格式return dtEnd;}/// <summary>/// CalculateWeekendDays/// </summary>/// <param name="dtStart">开始时间</param>/// <param name="dtEnd">结束时间</param>/// <returns></returns>public int CalculateWeekendDays(DateTime dtStart, DateTime dtEnd){int count = 0;for (DateTime dtTemp = dtStart; dtTemp > dtEnd; dtTemp = dtTemp.AddDays(-1)){if (dtTemp.DayOfWeek == DayOfWeek.Saturday || dtTemp.DayOfWeek == DayOfWeek.Sunday){count++;}}return count;}
如果不涉及到工作日会好处理很多,例如前一天的日子
DateTime yesterday = DateTime.Now.AddDays(-1);
后一天的日子
DateTime tomorrow= DateTime.Now.AddDays(1);
更多推荐
C#中 DateTime加(减)工作日
发布评论