一旦导出值,Java方法递归就会出现问题

标签 java recursion localdate

我有一个应该导出日期的程序。我正在传递一组假期和输入日期。如果我输入的日期在假期设置内,那么我将添加一天。我再次检查新日期是否在假期集中。等等。一旦新的派生日期和新的日期不在假期集列表中,它必须从该方法返回。但是,不是再次调用该方法,而是我的派生日期正在调整。 我不明白我哪里出了问题。我无法向我的基于计数器运行的方法传递任何反驳意见。这是我的代码。

package com.pamu.test;

import java.time.LocalDate;
import java.util.TreeSet;

public class ReturnCheck {

    private LocalDate determineNextWorkingDayIfHolidayOrWeekend(TreeSet<LocalDate> holidaysSet, LocalDate date) {
        System.out.println("determineNextWorkingDayIfHolidayOrWeekend");
        if (holidaysSet.contains(date)) {
            System.out.println(date+" : is a holiday");
            System.out.println("Adding "+1+" day to "+date);
            date = date.plusDays(1);
            System.out.println("So, new date is "+date);
            this.determineNextWorkingDayIfHolidayOrWeekend(holidaysSet, date);
        }
        return date;
    }

    public static void main(String args[]) {
        TreeSet<LocalDate> holidaysSet = new TreeSet<LocalDate>();
        holidaysSet.add(LocalDate.parse("2019-04-30".substring(0, 10)));
        holidaysSet.add(LocalDate.parse("2019-05-01".substring(0, 10)));
        LocalDate date = LocalDate.parse("2019-04-30".substring(0, 10));
        ReturnCheck tdc = new ReturnCheck();
        LocalDate derived = tdc.determineNextWorkingDayIfHolidayOrWeekend(holidaysSet,date);
        System.out.println(derived);
    }
}

非常感谢任何帮助。

最佳答案

您最终需要通过更改行来使用递归结果

this.determineNextWorkingDayIfHolidayOrWeekend(holidaysSet, date);

在最里面的if

return this.determineNextWorkingDayIfHolidayOrWeekend(holidaysSet, date);

然后输出

2019-05-02

关于一旦导出值,Java方法递归就会出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55920726/

相关文章:

java - 区域的 LocalDateTime 不显示区域的一天中的小时

java - 在项目之间共享 customTags.tld

java - 消息气泡自定义绘图

java - 检测到 Struts2 无限递归

javascript - 是什么阻止函数被无限调用?

c - 递归/链表

java - 使用 hadoop 错误设置获取 JAVA_HOME

java - 如何使用 .equals() 方法比较两个 StringBuffer 对象?

java - Get请求JAVA中的LocalDate格式

java - 两个日期之间的所有日期输出错误