法定节假日"/>
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 = "国庆节";
}
需要计算那个节日的日期,只需要传进去就可以了
更多推荐
Java 获取法定节假日
发布评论