public static String getLastWorkingDayOfPreviousMonth() {
LocalDate lastDayOfCurrentMonth = LocalDate.now().with(TemporalAdjusters.lastDayOfMonth());
LocalDate lastWorkingDayOfMonth;
switch (DayOfWeek.of(lastDayOfCurrentMonth.get(ChronoField.DAY_OF_WEEK))) {
case SATURDAY:
lastWorkingDayOfMonth = lastDayOfCurrentMonth.minusMonths(1);
break;
case SUNDAY:
lastWorkingDayOfMonth = lastDayOfCurrentMonth.minusMonths(2);
break;
default:
lastWorkingDayOfMonth = lastDayOfCurrentMonth;
}
return getFormattedDate(lastWorkingDayOfMonth);
}
上記は、当月の最終営業日です。上記を調整する月の最後の就業日は、どのようにして得ることができますか?LocalDateで前月の最終営業日
'lastWorkingDayOfMonth = lastDayOfCurrentMonth.minusMonths(1);' ???これにより前回の最終日ではなく、前月の最終日になります。代わりに 'minusDays(...)'を使うのですか? – Thomas
前月の最後の就業日:コードが修正されたら、switch文に 'lastDayOfCurrentMonth.minusMonths(1)'を送ってください。 'switch(lastDayOfCurrentMonth.minusMonths(1).getDayOfWeek())'(ステートメントを短縮して可読性を大幅に向上させるメソッド 'getDayOfWeek()'に注意してください)。 – Thomas
ありがとう - どこが間違っているのか分かります。私は 'lastDayOfCurrentMonth.minusMonths(1);を' lastDayOfCurrentMonth.minusDays(1);に更新しました。 – user2781389