前言:
现时小伙伴们对“java节假日”大约比较关切,小伙伴们都需要剖析一些“java节假日”的相关文章。那么小编在网络上汇集了一些对于“java节假日””的相关资讯,希望姐妹们能喜欢,看官们快快来学习一下吧!为了获取农历日期简单点,使用了 hutool 工具
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.7.20</version>
</dependency>
一、查询假期
通过官网查询,一共有7个主要的节日
分别为:
一、元旦:2022年1月1日至3日放假,共3天。
二、春节:1月31日至2月6日放假调休,共7天。1月29日(星期六)、1月30日(星期日)上班。
三、清明节:4月3日至5日放假调休,共3天。4月2日(星期六)上班。
四、劳动节:4月30日至5月4日放假调休,共5天。4月24日(星期日)、5月7日(星期六)上班。
五、端午节:6月3日至5日放假,共3天。
六、中秋节:9月10日至12日放假,共3天。
七、国庆节:10月1日至7日放假调休,共7天。10月8日(星期六)、10月9日(星期日)上班。
1.1 定义一个常量类
/**
* @program: demo-test
* @description: 假日静态类
* @author: czchen
* @date: 2022-02-14 11:41:30
*/
public class HolidayConstant {
public final static String NEWYEARDAY = "元旦节";
public final static String CHINESENEWYEARGREGORIANFESTIVAL = "春节";
public final static String QINGMINGFESTIVAL = "清明节";
public final static String LABORDAY = "劳动节";
public final static String DRAGONBOATGREGORIANFESTIVAL = "端午节";
public final static String MIDAUTUMNGREGORIANFESTIVAL = "中秋节";
public final static String NATIONALDAY = "国庆节";
}
二、编写获取假期的类
1、注意清明的需要进行计算的,21世纪的公式为:[Y*D+C]-L
公式解读:Y=年数后2位,D=0.2422,L=闰年数,21世纪C=4.81,20世纪=5.59.
/**
* @program: demo-test
* @description: 假期工具类
* @author: czchen
* @date: 2022-02-14 11:46:05
*/
public class HolidayUtil {
/**
* 获取假期时间
* @param holidayName 假期名称
* @param year 当前年份
* @return
*/
public static Date getHoliday(String holidayName, int year) {
switch (holidayName) {
case HolidayConstant.NEWYEARDAY:
return DateUtil.parse(year + "-1-1");
case HolidayConstant.CHINESENEWYEARGREGORIANFESTIVAL:
ChineseDate chinesenewYearFestival = new ChineseDate(year, 1, 1);
return chinesenewYearFestival.getGregorianDate();
case HolidayConstant.QINGMINGFESTIVAL:
int param = year - 2000;
int qingmingDay = (int) (param * 0.2422 + 4.81) - param / 4;
return DateUtil.parse(year + "-4-" + qingmingDay);
case HolidayConstant.LABORDAY:
return DateUtil.parse(year + "-5-1");
case HolidayConstant.DRAGONBOATGREGORIANFESTIVAL:
ChineseDate dragonBoatFestival = new ChineseDate(year, 5, 5);
return dragonBoatFestival.getGregorianDate();
case HolidayConstant.MIDAUTUMNGREGORIANFESTIVAL:
ChineseDate midAutumnFestival = new ChineseDate(year, 8, 15);
return midAutumnFestival.getGregorianDate();
case HolidayConstant.NATIONALDAY:
return DateUtil.parse(year + "-10-1");
default:
return new Date();
}
}
public static void main(String[] args) {
Date qingmingFestival = getHoliday(HolidayConstant.QINGMINGFESTIVAL, 2022);
System.out.println(HolidayConstant.QINGMINGFESTIVAL +"时间为:" + qingmingFestival);
}
}
标签: #java节假日