首页 > 解决方案 > 如果在范围内,则递归添加值

问题描述

我确信这应该很简单,但我似乎无法让它发挥作用。基本上我想检查日期是否在周末或银行假日,如果确实如此,则在日期上添加一天并再次检查,直到日期不落在这两个日期之一,然后返回日期。所以我有:

    private static DateTime isBankHoliday(DateTime myDate)
    {

        if (DateSystem.IsPublicHoliday(myDate, CountryCode.GB) || DateSystem.IsWeekend(myDate, CountryCode.GB))
        {
            isBankHoliday(myDate.AddDays(1));
        }
        else
        {
            return myDate;
        }

        return myDate;
    }

我称这个函数

var myNewDate = isBankHoliday(date);

因此,例如,我在 2019 年 5 月 5 日(星期日)通过例行检查,然后在日期上添加一天,因此成为第 6 天并再次检查,但沿线某处,日期然后恢复并再次返回第 5 天。

显然我在某处犯了一些基本错误,但看不到有人可以帮忙吗?

作为说明,我正在使用 Nagar 日期库。

谢谢, C

标签: c#model-view-controller

解决方案


return在语句中缺少 a ,并且在函数末尾if有一个不正确的语句。return它应该是:

private static DateTime isBankHoliday(DateTime myDate)
{

    if (DateSystem.IsPublicHoliday(myDate, CountryCode.GB) || DateSystem.IsWeekend(myDate, CountryCode.GB))
    {
        return isBankHoliday(myDate.AddDays(1));
    }
    else
    {
        return myDate;
    }
}

推荐阅读