У меня есть следующий кодIEnumerable За исключением не работает
/// <summary>
/// Calculates the date with a number of working days offset from today by
/// calculating a set of dates that exclude weekends and holidays, then
/// skipping forward the required number of days.
/// </summary>
public static DateTime AddWorkingDays(int workingDays, DateTime startDate)
{
var workDaysQuery = from n in Enumerable.Range(0, (workingDays + 14) * 2)
let date = startDate.AddDays(n)
where (date.DayOfWeek != DayOfWeek.Sunday) && (date.DayOfWeek != DayOfWeek.Saturday)
select date;
var publicHolidays = GetPublicHolidays();
var daysWorking = workDaysQuery.Except(publicHolidays).ToArray(); // why does this still include the publicHolidays ?
return daysWorking.Skip(workingDays).First();
}
Однако исключение не удаляют государственные праздники.
Временная составляющая государственных праздников равна нулю.
Попробуйте заменить 'select date'' на 'select date.Date;' и замените 'publicHolidays' на' publicHolidays.Select (x => x.Date) '(это необходимо, если значения' publicHolidays' содержат время) –
Мое предположение: компонент времени 'startDate' не равен нулю. Измените его на 'let date = startDate.Date.AddDays (n)' –