.NET 4.x Прибавить к дате определенное количество рабочих дней - C#
Формулировка задачи:
Доброго времени суток!
Как можно прибавить к текущей дате N-ое количество рабочих дней? Есть ли механизмы в С#?
Решение задачи: «.NET 4.x Прибавить к дате определенное количество рабочих дней»
textual
Листинг программы
public DateTime AddWorkDays(DateTime date, int workingDays)
{
int direction = workingDays < 0 ? -1 : 1;
DateTime newDate = date;
while (workingDays != 0)
{
newDate = newDate.AddDays(direction);
if (newDate.DayOfWeek != DayOfWeek.Saturday &&
newDate.DayOfWeek != DayOfWeek.Sunday &&
!IsHoliday(newDate))
{
workingDays -= direction;
}
}
return newDate;
}
public bool IsHoliday(DateTime date)
{
DateTime[] holidays =
new DateTime[] {
new DateTime(2010,12,27),
new DateTime(2010,12,28),
new DateTime(2011,01,03),
new DateTime(2011,01,12),
new DateTime(2011,01,13)
};
return holidays.Contains(date.Date);
}