节假日判断工具类
时间: 2023-07-31 20:11:26 浏览: 62
以下是一个 Java 工具类,用于判断指定日期是否是中国节假日。
```java
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class HolidayUtil {
/**
* 判断指定日期是否是节假日
*
* @param date 指定日期,格式为"yyyy-MM-dd"
* @return true:是节假日,false:不是节假日
*/
public static boolean isHoliday(String date) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date d = null;
try {
d = sdf.parse(date);
} catch (ParseException e) {
e.printStackTrace();
}
// 判断是否是周六、周日
Calendar cal = Calendar.getInstance();
cal.setTime(d);
if(cal.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY || cal.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) {
return true;
}
// 判断是否是法定节假日
int month = cal.get(Calendar.MONTH) + 1;
int day = cal.get(Calendar.DAY_OF_MONTH);
if(month == 1 && day == 1) { // 元旦
return true;
} else if(month == 5 && day == 1) { // 劳动节
return true;
} else if(month == 10 && (day == 1 || day == 2 || day == 3 || day == 4 || day == 5 || day == 6 || day == 7)) { // 国庆节
return true;
} else if(month == 4 && (day == 4 || day == 5 || day == 6)) { // 清明节
return true;
} else if(month == 6 && day == 25) { // 端午节
return true;
} else if(month == 9 && (day == 13 || day == 14 || day == 15)) { // 中秋节
return true;
} else if(month == 12 && (day == 24 || day == 25 || day == 26)) { // 圣诞节
return true;
}
return false;
}
}
```
使用示例:
```java
public class Test {
public static void main(String[] args) {
boolean isHoliday = HolidayUtil.isHoliday("2022-01-01");
System.out.println(isHoliday); // true
}
}
```