Я хотел бы достичь даты, которая равна -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.