java.time
LocalDate originDate = LocalDate.of(2019, Month.MAY, 1);
for (int amountMonth = 1; amountMonth <= 3; amountMonth++) {
System.out.println("Origin date: " + originDate + " - Add " + amountMonth + " Months");
System.out.println(originDate.plusMonths(amountMonth));
}
Вывод:
Origin date: 2019-05-01 - Add 1 Months
2019-06-01
Origin date: 2019-05-01 - Add 2 Months
2019-07-01
Origin date: 2019-05-01 - Add 3 Months
2019-08-01
Я понял из вашего желаемого вывода, что вас интересует только дата, а невремя суток, ни часовой пояс.Если это так, класс LocalDate
является правильным для использования.
Если вас интересует только месяц, а не день месяца, используйте YearMonth
вместо LocalDate
.Код будет таким же, за исключением объявления и инициализации:
YearMonth originDate = YearMonth.of(2019, Month.MAY);
Origin date: 2019-05 - Add 1 Months
2019-06
(etc.)
Не используйте Calendar
и GregorianCalendar
.Эти классы плохо разработаны и давно устарели.Вдобавок к этому они несут с каждым объектом время суток, часовой пояс, недельную схему и многое другое, и все это, я не думаю, что вам нужно, и это только рискует запутать тех, кто читает ваш код.
Ссылка: Обучающее руководство по Oracle: Дата и время , объясняющее, как использовать java.time.