如何检查日期是否在星期六,那么它将在同一个月设置为最近的一天?
2种情景:
答案 0 :(得分:0)
我不确定我是否完全理解你想要的东西,但是你想要这样的东西(需要Java 8 ......)
public static void main(String[] args) {
System.out.println(toNearestDayInSameMonthIfSaturday(LocalDate.of(2015, 4, 4))); // Print 2015-04-05
System.out.println(toNearestDayInSameMonthIfSaturday(LocalDate.of(2015, 4, 18))); // Print 2015-04-19
System.out.println(toNearestDayInSameMonthIfSaturday(LocalDate.of(2015, 4, 25))); // Print 2015-04-25
}
private static LocalDate toNearestDayInSameMonthIfSaturday(LocalDate local) {
LocalDate result;
if (local.getDayOfWeek() == DayOfWeek.SATURDAY) {
LocalDate plusOneDay = local.plusDays(1);
LocalDate minusOneDay = local.minusDays(1);
if (plusOneDay.getMonthValue() != local.getMonthValue()) {
result = minusOneDay;
} else {
result = plusOneDay;
}
} else {
result = local;
}
return result;
}