java代码如何判断一个日期是否为节假日呢?

重生 Java经验 发布时间:2023-12-11 22:13:35 阅读数:10255 1
下文笔者讲述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;
    }
}
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaJingYan/202312/17023040797430.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者