我無法獲得此方法返回正確的日期。這種方法做的是取當前日期並添加你指定的天數。所以如果你想下個星期一,它會在下個星期一回來。它還將日期發送到一個方法,該方法檢查是否是不允許返回的「過濾日期」之一。除了遞歸之外,這一切都可以正常工作。我想要做的是,如果某個日期是「過濾日期」,則會再次運行相同的方法,並添加天數直至達到未過濾日期。雖然說我通過2009年10月12日,這是一個過濾日期,它遞歸,增加日期和返回2009年10月19日,但它看起來像它再次返回,但返回10/12/2009 。我究竟做錯了什麼?感謝C中的遞歸和返回日期#
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;
}