using System.Collections.Generic;
var holidays = new List<Holiday> { new Holiday(3, 13) };
var orderDate = new DateTime(2015, 3, 9);
var result = GetWorkingDays(orderDate, holidays).Skip(workingDays).First();
static IEnumerable<DateTime> GetWorkingDays(DateTime startDate, List<Holiday> holidays)
for (;;date = date.AddDays(1))
if (date.DayOfWeek != DayOfWeek.Saturday &&
date.DayOfWeek != DayOfWeek.Sunday &&
holidays.All(holiday => holiday.Day != date.Day ||
holiday.Month != date.Month))
public readonly int Month;
public Holiday(int month, int day) { Month = month; Day = day; }