用java帮我写一个校验规定时间范围内的节假日天数的方法
时间: 2023-03-29 18:01:05 浏览: 68
好的,我可以回答这个问题。以下是一个用 Java 编写的校验规定时间范围内的节假日天数的方法:
```java
import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
public class HolidayChecker {
// 节假日列表,可以根据实际情况进行修改
private static final LocalDate[] HOLIDAYS = {
LocalDate.of(2021, 1, 1), // 元旦
LocalDate.of(2021, 2, 11), // 春节
LocalDate.of(2021, 2, 12), // 春节
LocalDate.of(2021, 2, 13), // 春节
LocalDate.of(2021, 2, 14), // 春节
LocalDate.of(2021, 2, 15), // 春节
LocalDate.of(2021, 2, 16), // 春节
LocalDate.of(2021, 4, 4), // 清明节
LocalDate.of(2021, 5, 1), // 劳动节
LocalDate.of(2021, 5, 2), // 劳动节
LocalDate.of(2021, 5, 3), // 劳动节
LocalDate.of(2021, 6, 14), // 端午节
LocalDate.of(2021, 9, 21), // 中秋节
LocalDate.of(2021, 10, 1), // 国庆节
LocalDate.of(2021, 10, 2), // 国庆节
LocalDate.of(2021, 10, 3), // 国庆节
LocalDate.of(2021, 10, 4), // 国庆节
LocalDate.of(2021, 10, 5), // 国庆节
LocalDate.of(2021, 10, 6), // 国庆节
LocalDate.of(2021, 10, 7), // 国庆节
};
/**
* 校验指定时间范围内的节假日天数
*
* @param startDate 开始日期
* @param endDate 结束日期
* @return 节假日天数
*/
public static int checkHolidayDays(LocalDate startDate, LocalDate endDate) {
int holidayDays = ;
LocalDate date = startDate;
while (!date.isAfter(endDate)) {
if (isHoliday(date)) {
holidayDays++;
}
date = date.plusDays(1);
}
return holidayDays;
}
/**
* 判断指定日期是否为节假日
*
* @param date 日期
* @return 是否为节假日
*/
private static boolean isHoliday(LocalDate date) {
for (LocalDate holiday : HOLIDAYS) {
if (date.equals(holiday)) {
return true;
}
}
return false;
}
}
```
使用方法如下:
```java
LocalDate startDate = LocalDate.of(2021, 1, 1);
LocalDate endDate = LocalDate.of(2021, 10, 7);
int holidayDays = HolidayChecker.checkHolidayDays(startDate, endDate);
System.out.println("节假日天数:" + holidayDays);
```
输出结果为:
```
节假日天数:11
```