Java 获取法定节假日

我国法定节假日:

1、元旦,放假1天(1月1日)

2、新年,放假3天(阴历除夕、正月初1、初二)

3、清明节,放假1天(清明当日)

4、劳动节,放假1天(5月1日)

5、端午节,放假1天(阴历端午当日)

6、中秋节,放假1天(阴历中秋当日)

7、国庆节,放假3天(10月1日、2日、3日)

共计11天,其中春节、端午节、中秋节 需要根据农历转换成心理,清明节的计算方法最复杂:

地球公转一周为黄经360度,当地球到达黄经零度时定为春分,而后每运行15度有一个节气,共有24节气,清明节就是根据这个节气计算出来的。

话不多说,上代码:

public class HolidayUtil {

    public static Date getHoliday(String holidayName, int year) {
        switch (holidayName) {
                //元旦
            case HolidayConstant.NEW_YEARS_DAY:
                return DateUtil.parse(year + "-1-1");
                //春节
            case HolidayConstant.THE_SPRING_FESTIVAL:
                ChineseDate theSpringFestival = new ChineseDate(year, 1, 1);
                return theSpringFestival.getGregorianDate();
                //清明
            case HolidayConstant.TOMB_SWEEPING_FESTIVAL:
                int param = year - 2000;
                int tombSweepingFestival = (int) (param * 0.2422 + 4.81) - param / 4;
                return DateUtil.parse(year + "-4-" + tombSweepingFestival);
                //劳动节
            case HolidayConstant.LABOUR_DAY:
                return DateUtil.parse(year + "-5-1");
                //端午
            case HolidayConstant.THE_DRAGON_BOAT_FESTIVAL:
                ChineseDate dragonBoatFestival = new ChineseDate(year, 5, 5);
                return dragonBoatFestival.getGregorianDate();
                //中秋
            case HolidayConstant.MID_AUTUMN_FESTIVAL:
                ChineseDate midAutumnFestival = new ChineseDate(year, 8, 15);
                return midAutumnFestival.getGregorianDate();
                //国庆
            case HolidayConstant.NATIONAL_DAY:
                return DateUtil.parse(year + "-10-1");
            default:
                return new Date();
        }
    }
}
public class HolidayConstant {

    public final static String NEW_YEARS_DAY = "元旦节";
    public final static String THE_SPRING_FESTIVAL = "春节";
    public final static String TOMB_SWEEPING_FESTIVAL = "清明节";
    public final static String LABOUR_DAY = "劳动节";
    public final static String THE_DRAGON_BOAT_FESTIVAL = "端午节";
    public final static String MID_AUTUMN_FESTIVAL = "中秋节";
    public final static String NATIONAL_DAY = "国庆节";
}

需要计算那个节日的日期,只需要传进去就可以了

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值