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);
}
return dtEnd;
}
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 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);
}
return dtEnd;
}
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;
}
本文介绍了一个用于计算指定日期前后的工作日数量的方法。通过定义两个公共函数:addWorkDays 和 CalculateWeekendDays,可以准确地计算出不包含周末的日期范围。此算法适用于需要排除周末进行日期计算的场景。
1525

被折叠的 条评论
为什么被折叠?



