Я пытаюсь получить первый день следующего месяца от объекта LocalDate, но столкнулся с некоторыми проблемами.
У меня есть средство выбора даты, где пользователь может выбрать любую дату, которую он хочет, без ограничений, и мне нужно получить первый день следующего месяца, вот что я подумал сделать:
LocalDate localDate = myDatePicker.getValue();
LocalTime startTime = LocalTime.of(0, 0);
LocalDate endDate = LocalDate.of(localDate.getYear(), localDate.getMonthValue() + 1, 0);
Однако я вижу проблему, которая может возникнуть при выборе декабря, если это произойдет, то вызов
LocalDate.of(localDate.getYear(), localDate.getMonthValue() + 1, 0);
должен произойти сбой, потому что я передаю ему значение месяца 13. Теперь я могу выбратьпроверьте, является ли значение месяца декабрь, и если да, я мог бы добавить 1 к году и начать с 0 следующим образом:
if(localDate.getMonthValue() >= 12)
LocalDate.of(localDate.getYear() + 1, 0, 0);
Однако я чувствую, что должен быть способ обойти это в самом классе,Кто-нибудь знает, что мои предположения о переходе 13 в значение LocalDate.of месяца приведут к ошибке?Если это так, есть ли способ сделать то, что я хочу сделать, который выглядит не так уж плохо и использует метод сборки в?