DateRange итерирует неправильно (код взят из SO) - PullRequest
0 голосов
/ 03 декабря 2018

Несколько месяцев назад я нашел эту ветку об итерациях по дням в java

Java 8 LocalDate - как получить все даты между двумя датами?

Иначал использовать класс DateRange:

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)

и @Autowire ing класса DateRange.

Как бы выполнить итерации за заданные дни?

timeline in SysOut

1 Ответ

0 голосов
/ 05 декабря 2018

В конечном итоге это была проблема с двойным POST, вызванная использованием прокси.Метод DateRange все время был в порядке ... Вы можете увидеть решение двойной проблемы POST в другом потоке Здесь

Спасибо Оле В.В. за попытку помочь:)

...