Как избежать повтора кода при работе с датами? (LocalDate)
Реализую метод, который отражает каждый год от заданной даты до текущей. Формат требуемого вывода:
0 - 31.12.1990 - Mon
1 - 31.12.1991 - Tue
и далее до 2021 года. Код получился такой
LocalDate date = LocalDate.of(1990, 12, 31);
String formattedDate = date.format(DateTimeFormatter.ofLocalizedDate(FormatStyle.SHORT));
String str = "0 - " + formattedDate + " - " + date.getDayOfWeek();
LocalDate date1 = date.plusYears(1);
String formattedDate1 = date1.format(DateTimeFormatter.ofLocalizedDate(FormatStyle.SHORT));
String str2 = "1 - " + formattedDate1 + " - " + date1.getDayOfWeek();
System.out.println(str + System.lineSeparator() + str2);```
вывод:
0 - 31.12.1990 - MONDAY
1 - 31.12.1991 - TUESDAY
Как оптимизировать лучше? слишком много повтора кода и вручную приходится создавать каждую дату, прибавляя год к предыдущей.
Ответы (1 шт):
Автор решения: lexfiero
→ Ссылка
Если коротко примерно так:
LocalDate date = LocalDate.of(1990, 12, 31);
LocalDate now = LocalDate.now();
for(int i = 0; i<= Period.between(date,now).getYears()+1;i++){
LocalDate temp = date.plusYears(i);
String str = i + " - " + temp.format(DateTimeFormatter.ofLocalizedDate(FormatStyle.SHORT)) + " - " + temp.getDayOfWeek();
System.out.println(str);
}
Смысл думаю понятен