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