Я не могу заставить этот метод вернуть правильную дату. Этот метод использует текущую дату и добавляет количество дней, которое вы укажете. Так что если вы хотите следующий понедельник, он вернется в следующий понедельник. Он также отправляет дату в метод, который проверяет, является ли она одной из «отфильтрованных дат», которую нельзя возвращать. Это все работает отлично, за исключением рекурсии. Что я хотел сделать, так это то, что если дата является «отфильтрованной датой», запустите тот же метод еще раз, добавляя дни, пока она не достигнет нефильтрованной даты. Что происходит, хотя, скажем, я передаю в 10/12/2009, и это отфильтрованная дата, он делает рекурсию, добавляет дни и возвращает 19.10.2009, но потом похоже, что он возвращается снова, но возвращается , Что я делаю неправильно? спасибо
private static DateTime Next(DateTime current, DayOfWeek dayOfWeek, int weeksAhead)
{
int offsetDays = dayOfWeek - current.DayOfWeek;
if (offsetDays <= 0)
{
offsetDays += 7 * weeksAhead;
}
DateTime result = current.AddDays(offsetDays);
//MAKE SURE RESULT IS NOT A FILTERED DATE
if (IsFiltered(result))
{
Next(result, dayOfWeek, 1);
}
//IF IT IS, RUN NEXT AGAIN WITH AN INCREMENTAL WEEK
return result;
}