java代码如何判断一个日期是否为节假日呢?
下文笔者讲述java代码检测一个日期是否为节假日的方法分享,如下所示
判断日期是否为节假日的实现思路
我们只需借助Hutool的HolidayUtil类下的方法
即可检测日期是否为节假日
例:日期是否为节假日的判断方法
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.extra.astro.ChineseDate;
import cn.hutool.extra.astro.Lunar;
import cn.hutool.extra.astro.Solar;
public class HolidayDemo {
public static void main(String[] args) {
String dateStr = "2023-10-01";
boolean isHoliday = isHoliday(dateStr);
boolean isWeekend = isWeekend(dateStr);
boolean isWorkingDay = isWorkingDay(dateStr);
System.out.println(dateStr + " 是否为节假日:" + isHoliday);
System.out.println(dateStr + " 是否为周末:" + isWeekend);
System.out.println(dateStr + " 是否为工作日:" + isWorkingDay);
}
// 判断日期是否为节假日
private static boolean isHoliday(String dateStr) {
// 解析日期字符串为日期对象
java.util.Date date = DateUtil.parse(dateStr);
// 判断是否为法定节假日
boolean isHoliday = cn.hutool.extra.astro.HolidayUtil.isHoliday(date);
if (isHoliday) {
return true;
}
// 判断是否为农历节日
Lunar lunar = new Lunar(date);
ChineseDate chineseDate = lunar.getChineseDate();
String chineseHoliday = cn.hutool.extra.astro.HolidayUtil.getHolidayStr(chineseDate);
if (StrUtil.isNotBlank(chineseHoliday)) {
return true;
}
// 判断是否为非周末的休息日
boolean isOffDay = cn.hutool.extra.astro.HolidayUtil.isOffDay(date);
if (isOffDay) {
return true;
}
return false;
}
// 判断日期是否为周末(非工作日)
private static boolean isWeekend(String dateStr) {
// 解析日期字符串为日期对象
java.util.Date date = DateUtil.parse(dateStr);
// 判断是否为周末
boolean isWeekend = cn.hutool.extra.astro.HolidayUtil.isWeekend(date);
return isWeekend;
}
// 判断日期是否为工作日
private static boolean isWorkingDay(String dateStr) {
// 解析日期字符串为日期对象
java.util.Date date = DateUtil.parse(dateStr);
// 判断是否为工作日
boolean isWorkingDay = cn.hutool.extra.astro.HolidayUtil.isWorkingDay(date);
return isWorkingDay;
}
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


