Period.between не включает последний день в Java - PullRequest
0 голосов
/ 18 октября 2019
Period difference = Period.between(01.01.2018,31.01.2018) 

difference.getMonths() дает ноль, а difference.getDays() дает 30 дней, в любом случае включить последний день?

Ответы [ 2 ]

3 голосов
/ 18 октября 2019

Это в документации (без даты окончания):

Дата начала включена, а дата окончания - нет.

Вы можете просто добавить однудень до вашего окончания через endDate.plusDays(1)

3 голосов
/ 18 октября 2019

Ответ предельно прост: просто позвоните plusDays(1) по полученному периоду.

Period.between специально не включает день окончания. Чтобы включить последний день, вы должны вручную добавить один день.


Такая схема включения начальной точки и исключения конечной точки довольно распространена. Например, String.substring(int startIndex, int endIndex) также следует этому шаблону, а также IntStream.range(int startInclusive, int endExclusive)

...