Временная манипуляция на -1 месяц +1 день все еще на 1 месяц отличается от начала - PullRequest
0 голосов
/ 06 мая 2019

Я хотел бы достичь даты, которая равна -1 месяц + 1 день, которая должна быть на 0 месяцев меньше даты начала.

Использование joda-time 2.10:

int day = 29;
LocalDate date1 = new LocalDate(new GregorianCalendar(2019, Calendar.JUNE, day).getTime());
LocalDate date2 = date1.plusMonths(-1).plusDays(1);
Months.monthsBetween(date1,date2).getMonths(); // returns 0 <- it's OK

, нотот же код с вводом int day = 30; возвращает -1, что плохо .

Это похоже на непоследовательность в библиотеке Joda.Это тот случай: смещение на -1 месяцев смена даты на номер месяца смены и сохранение номера дня не больше, чем во вводе, но разница между датами месяца зависит от дня месяца.

Знаете ли вы какие-либо альтернативные и рабочиерешение?


Я нашел JSR-310 с ChronoUnit - это решает проблему, НО ему нужна Java8.Я бы хотел остаться на Java7.

...