给定一个月份,获取当月最后一个工作日
时间: 2024-03-19 22:44:15 浏览: 21
获取当月最后一个工作日可以分为两步:
1. 获取当月最后一天
2. 如果最后一天是周末(即星期六或星期日),则向前推到最后一个工作日
以下是一个示例代码:
```java
import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.temporal.TemporalAdjusters;
public class LastWorkdayOfMonthExample {
public static void main(String[] args) {
int year = 2021;
int month = 10;
// 获取当月最后一天
LocalDate lastDayOfMonth = LocalDate.of(year, month, 1)
.with(TemporalAdjusters.lastDayOfMonth());
// 如果最后一天是周六或周日,则向前推到最后一个工作日
DayOfWeek lastDayOfWeek = lastDayOfMonth.getDayOfWeek();
if (lastDayOfWeek == DayOfWeek.SATURDAY || lastDayOfWeek == DayOfWeek.SUNDAY) {
lastDayOfMonth = lastDayOfMonth.with(TemporalAdjusters.previous(DayOfWeek.FRIDAY));
}
System.out.println("当月最后一个工作日:" + lastDayOfMonth);
}
}
```
在上面的代码中,我们使用Java 8提供的日期和时间API来获取当月最后一天,并使用TemporalAdjusters工具类来实现日期调整。如果最后一天是周六或周日,则向前推到最后一个工作日。最后输出当月最后一个工作日的结果。