DateRange 迭代错误(代码取自 SO)

DateRange iterating wrong (code taken from SO)

几个月前,我在 java

中发现了这个关于迭代几天的帖子

并开始使用 class 日期范围:

public class DateRange implements Iterable<LocalDate> {

    private final LocalDate startDate;
    private final LocalDate endDate;

    public DateRange(LocalDate startDate, LocalDate endDate) {
        //check that range is valid (null, start < end)
        this.startDate = startDate;
        this.endDate = endDate;
    }

    @Override
    public Iterator<LocalDate> iterator() {
        return stream().iterator();
    }

    public Stream<LocalDate> stream() {
        return Stream.iterate(startDate, d -> d.plusDays(1))
                .limit(ChronoUnit.DAYS.between(startDate, endDate) + 1);
    }

    public List<LocalDate> toList() { //could also be built from the stream() method
        List<LocalDate> dates = new ArrayList<>();
        for (LocalDate d = startDate; !d.isAfter(endDate); d = d.plusDays(1)) {
            dates.add(d);
        }
        return dates;
    }

}

不管怎样,今天在调试时我发现这根本不起作用,我想知道一个星期的迭代怎么花了这么长时间。只是为了发现它以随机顺序多次迭代同一天。

问题可能是我不明白如何使用这个...

    for (LocalDate date : new DateRange(thymeDate.getDate_a(), thymeDate.getDate_b())) {

        List<Group_C> owners = getAllByDate(date);
        groupList = composeGroup.composeGroupForRange(groupList, owners);

    }
    return GroupList;
}

示例中的DateRange.between()我也试过了,不是函数,不能用? 并创建新的普通实例。

DateRange range = new DateRange(dateA, dateB)

@Autowireing DateRange class.

我将如何迭代给定的日子?

这最终是双 POST 的问题,由使用代理引起。 DateRange 方法一直都很好...... 您可以在另一个线程中查看 double POST 问题的解决方案

感谢 Ole V.V。试图提供帮助:)