c# - C#中的递归和返回日期

标签 c# datetime recursion

我无法使用此方法返回正确的日期。此方法的作用是获取当前日期并添加您指定的天数。因此,如果您要下一个星期一,它将在下一个星期一返回。它还会将日期发送到一种方法中,该方法检查日期是否为不允许返回的“过滤日期”之一。除了递归之外,所有这些都工作正常。我想做的是,如果日期是“过滤日期”,请再次运行相同的方法,增加天数直到达到未过滤的日期。虽然发生了什么,但是说我通过了2009年10月12日,这是一个经过过滤的日期,它会进行递归,加上日期并返回10/19/2009,但是看起来它又返回了,但是返回10/12/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;
}

最佳答案

更换

Next(result, dayOfWeek, 1);




return Next(result, dayOfWeek, 1);


您不会返回(也不存储)递归调用的结果。

关于c# - C#中的递归和返回日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1535384/

相关文章:

c# - 如何使用读取(获取/使用)内部 sitecore 标志图标?

mysql - 如何使用字符串/列值作为 mysql 日期间隔常量(DAY、MONTH ...)?

javascript - 工作灯 : recursive function call inside Adapter - hangs Studio

regex - 超过复杂正则子表达式递归限制 (32766)

c# - MVC和MVVM框架的ViewModel部分位于哪一层?

c# - 如何在 json 序列化中跳过属性名称?

c# - 如果我的函数在逻辑上只返回自然数,我应该使用 uint 吗?

django - Django 表单模型中的日期时间字段

python - 将 pandas 时间序列从 object dtype 重新索引为 datetime dtype

javascript - 递归验证 HTML 输入元素