Why LocalDate.plusDays not working here?

2019-07-14 07:07发布

问题:

I'm trying to split a date range into individual dates in the following way:

private static void splitDates(LocalDate dateFrom, LocalDate dateTo) {
    while (dateFrom.isBefore(dateTo) || dateFrom.isEqual(dateTo)) {
        System.out.println(dateFrom);
        dateFrom.plusDays(1L);
    }
}

And I don't know why dateFrom.plusDays(1L) is not working as the date remains still the same so the loop becomes infinite.

回答1:

plusDays doesn't alter the original LocalDate, you have to assign the result :

dateFrom = dateFrom.plusDays(1L);


回答2:

Because method plusDays doesn't change variable dateFrom. You should do like this:

dateFrom = dateFrom.plusDays(1L);