龙空技术网

简单使用java获取7个法定假期的时间

解影视 585

前言:

现时小伙伴们对“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节假日