Revision: 11831
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at February 20, 2009 15:52 by chadj2
Initial Code
public DateTime AddWorkingDays(DateTime dtFrom, int nDays)
{
// determine if we are increasing or decreasing the days
int nDirection = 1;
if (nDays < 0)
{
nDirection = -1;
}
// move ahead the day of week
int nWeekday = nDays % 5;
while(nWeekday != 0)
{
dtFrom = dtFrom.AddDays(nDirection);
if (dtFrom.DayOfWeek != DayOfWeek.Saturday
&& dtFrom.DayOfWeek != DayOfWeek.Sunday)
{
nWeekday -= nDirection;
}
}
// move ahead the number of weeks
int nDayweek = (nDays / 5) * 7;
dtFrom = dtFrom.AddDays(nDayweek);
return dtFrom;
}
Initial URL
Initial Description
A quick search on the internet reveals all kinds of ways you can calculate with business days. I think is the most simple and efficient. In this example add day of week and weeks separately. The loop is never iterated more then 4 times regardless of the number of days being added.
Initial Title
Method for adding working days to a date
Initial Tags
Business
Initial Language
C#