2013-05-30 3 views
0

Я пытаюсь добавить 1 месяц на даты, но проблема в том, что у меня есть дата 28 февраля, тогда я добавляю еще один месяц, я возвращаюсь к 28 марта. Это должно закончиться 31 марта. Так же, как когда я начинал с даты 30 апреля, я должен был закончиться 31 мая, а не 30 мая. Я попытался использовать plusMonths() Jodatime и добавить() из java.util.date, но все равно такую ​​же проблему.Добавить 1 месяц до 28 февраля должно закончиться 31 марта

+0

Итак, если бы было 2 февраля, и вы добавили месяц, какая дата вы ожидаете? – maba

+0

, что будет маршем 2. – John

+0

Будет ли 28 февраля 2013 года до 31 марта 2013 года, но 28 февраля 2016 года - до 28 марта 2016 года? –

ответ

6

Ваше ожидание просто неверно: предполагается, что он будет двигаться в тот же день в следующем месяце, если таковой существует. В любом случае, как код может знать, что вы хотите, чтобы 28 февраля означал «последний день февраля»? Это законно означает «28 февраля». Предположим, вы начали с 28 января, затем добавили месяц, затем добавили еще один, какой результат вы ожидаете?

Что необходимо сделать, работая с 1-го числа следующего месяца, а затем перемещаясь на один день назад.

+0

Если дата начала с 28 января, она должна закончиться 28 февраля, затем в следующем месяце будет 28 марта. Но если дата начала с 31 января, в следующем месяце должна быть 28-я, а затем марта 31. Возможно ли это? – John

+2

Логика, которую вы предлагаете, должна быть функцией полной истории состояний объекта. Это также будет очень специфично для ваших пожеланий. Естественно, никакая публичная библиотека не подходит для этого. –

Смежные вопросы