Добавить к дате несколько рабочих дней - C#
Формулировка задачи:
простое добавление дней понятно. но как добавить только рабочие дни? понятно, что с праздниками всё сложно... пусть тогда вычеркнуты будут только суббота и воскресение. как это сделать?
Решение задачи: «Добавить к дате несколько рабочих дней»
textual
Листинг программы
static DateTime AddWorkDays(DateTime date, int n) {
int daysBeforeWeekEnd = 5 - (int)date.DayOfWeek;
if (n <= daysBeforeWeekEnd)
return date.AddDays(n);
int fullWorkWeeks = n / 5;
int daysAfterWeekEnd = n - daysBeforeWeekEnd - fullWorkWeeks * 5;
return date.AddDays(daysBeforeWeekEnd + fullWorkWeeks * 7 + daysAfterWeekEnd + (daysAfterWeekEnd == 0 ? 0 : 2));
}