返回顶部
首页 > 资讯 > 精选 >如何使用Java获取国家法定节假日
  • 505
分享到

如何使用Java获取国家法定节假日

2023-06-14 19:06:13 505人浏览 八月长安
摘要

这篇文章主要介绍了如何使用Java获取国家法定节假日,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、WEB应

这篇文章主要介绍了如何使用Java获取国家法定节假日,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

Java是什么

Java是一门面向对象编程语言,可以编写桌面应用程序、WEB应用程序、分布式系统和嵌入式系统应用程序。

Maven配置

<!-- okHttp -->        <dependency>            <groupId>com.squareup.okhttp</groupId>            <artifactId>okhttp</artifactId>            <version>${okhttp.version}</version>        </dependency>         <!-- fastJSON -->        <dependency>            <groupId>com.alibaba</groupId>            <artifactId>fastjson</artifactId>            <version>${fastjson.version}</version>        </dependency>

Java程序

package com.uiotsoft.daily.task; import com.alibaba.fastjson.JSONObject;import com.squareup.okhttp.OkHttpClient;import com.squareup.okhttp.Request;import com.squareup.okhttp.Response; import java.io.IOException;import java.text.SimpleDateFORMat;import java.util.*; public class TestDate {     public static void main(String[] args) {        System.out.println(getJjr(2021, 4));        System.out.println(getMonthWekDay(2021, 4));        System.out.println(JJR(2021, 4));     }         public static Set<String> JJR(int year, int month) {        //获取所有的周末        Set<String> monthWekDay = getMonthWekDay(year, month);        //http://timor.tech/api/holiday api文档地址        Map jjr = getJjr(year, month + 1);        Integer code = (Integer) jjr.get("code");        if (code != 0) {            return monthWekDay;        }        Map<String, Map<String, Object>> holiday = (Map<String, Map<String, Object>>) jjr.get("holiday");        Set<String> strings = holiday.keySet();        for (String str : strings) {            Map<String, Object> strinGobjectMap = holiday.get(str);            Integer wage = (Integer) stringObjectMap.get("wage");            String date = (String) stringObjectMap.get("date");            //筛选掉补班            if (wage.equals(1)) {                monthWekDay.remove(date);            } else {                monthWekDay.add(date);            }        }        return monthWekDay;    }         private static Map getJjr(int year, int month) {        String url = "http://timor.tech/api/holiday/year/";        OkHttpClient client = new OkHttpClient();        Response response;        //解密数据        String rsa = null;        Request request = new Request.Builder()                .url(url)                .get()                .addHeader("Content-Type", "application/x-www-form-urlencoded")                .build();        try {            response = client.newCall(request).execute();            rsa = response.body().string();        } catch (IOException e) {            e.printStackTrace();        }        return JSONObject.parseObject(rsa, Map.class);    }         public static Set<String> getMonthWekDay(int year, int mouth) {        Set<String> dateList = new HashSet<>();        SimpleDateFormat simdf = new SimpleDateFormat("yyyy-MM-dd");        Calendar calendar = new GregorianCalendar(year, mouth, 1);        Calendar endCalendar = new GregorianCalendar(year, mouth, 1);        endCalendar.add(Calendar.MONTH, 1);        while (true) {            int weekday = calendar.get(Calendar.DAY_OF_WEEK);            if (weekday == 1 || weekday == 7) {                dateList.add(simdf.format(calendar.getTime()));            }            calendar.add(Calendar.DATE, 1);            if (calendar.getTimeInMillis() >= endCalendar.getTimeInMillis()) {                break;            }        }        return dateList;    } }

以上方法可以拿来即用,当然也可以根据自己的需求自定义。

以下是我自己业务需求,将调用API接口获取的节假日信息保存到本地数据库中,如果不感兴趣可以跳过以下内容哦~~~~

package com.uiotsoft.daily.task; import cn.hutool.core.date.DateUtil;import cn.hutool.json.JSONUtil;import com.alibaba.fastjson.JSONObject;import com.squareup.okhttp.OkHttpClient;import com.squareup.okhttp.Request;import com.squareup.okhttp.Response;import com.uiotsoft.daily.module.entity.DailyHolidayConfig;import com.uiotsoft.daily.module.entity.HolidayRawInfo;import com.uiotsoft.daily.module.service.DailyHolidayConfigService;import com.uiotsoft.daily.module.service.TaskService;import lombok.extern.slf4j.Slf4j;import org.springframework.beans.factory.annotation.Value;import org.springframework.scheduling.annotation.Scheduled;import org.springframework.stereotype.Component; import javax.annotation.Resource;import java.io.IOException;import java.util.*;import java.util.stream.Collectors; @Slf4j@Componentpublic class NoSubmitTask {     @Resource    private DailyHolidayConfigService holidayConfigService;     @Value("${syncAddress}")    private String syncAddress;     @Scheduled(cron = "${syncHolidayDeadline}")    public void syncHoliday() {         log.info("每年12月28凌晨1点定时同步下一年的节假日信息,同步节假日开始时间 = {}", DateUtil.formatDateTime(new Date()));         String url = syncAddress;        OkHttpClient client = new OkHttpClient();        Response response;        //解密数据        String rsa = null;        Request request = new Request.Builder().url(url).get()                .addHeader("Content-Type", "application/x-www-form-urlencoded")                .build();        try {            response = client.newCall(request).execute();            rsa = response.body().string();        } catch (IOException e) {            e.printStackTrace();        }         Map map = JSONObject.parseObject(rsa, Map.class);        if (map != null) {            Integer code = (Integer) map.get("code");            if (code == 0) {                JSONObject holidayJson = (JSONObject) map.get("holiday");                String jsonString = holidayJson.toJSONString();                log.info("获取节假日数据内容为 jsonString = 【{}】", jsonString);                Set<Map.Entry<String, Object>> entrySet = holidayJson.entrySet();                List<HolidayRawInfo> rawInfoList = new ArrayList<>();                for (Map.Entry<String, Object> entry : entrySet) {                    String key = entry.geTKEy();                    Object value = entry.getValue();                    cn.hutool.json.JSONObject jsonObject = JSONUtil.parseObj(value);                    HolidayRawInfo holidayRawInfo = JSONUtil.toBean(jsonObject, HolidayRawInfo.class);                    rawInfoList.add(holidayRawInfo);                }                // 定义节假日集合                List<DailyHolidayConfig> holidayConfigList = new ArrayList<>();                for (HolidayRawInfo holidayRawInfo : rawInfoList) {                    DailyHolidayConfig holidayConfig = new DailyHolidayConfig();                    holidayConfig.setHolidayTarget(holidayRawInfo.getTarget());                    holidayConfig.setHolidayAfter(holidayRawInfo.getAfter());                    holidayConfig.setHolidayDate(holidayRawInfo.getDate());                    holidayConfig.setHolidayName(holidayRawInfo.getName());                    holidayConfig.setHolidayRest(holidayRawInfo.getRest());                    holidayConfig.setHolidayWage(holidayRawInfo.getWage());                    holidayConfig.setCreateTime(new Date());                    holidayConfigList.add(holidayConfig);                }                 // 根据日期排序升序                List<DailyHolidayConfig> collect = holidayConfigList.stream().sorted(Comparator.comparing(DailyHolidayConfig::getHolidayDate)).collect(Collectors.toList());                 // 批量插入节假日表中                holidayConfigService.insertBatch(collect);            } else {                log.error("E|NoSubmitTask|syncHoliday()|同步节假日信息时,调用节假日网站服务出错!");            }        }         log.info("每年12月28凌晨1点定时同步下一年的节假日信息,同步节假日结束时间 = {}", DateUtil.formatDateTime(new Date()));    }}

感谢你能够认真阅读完这篇文章,希望小编分享的“如何使用Java获取国家法定节假日”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网精选频道,更多相关知识等着你来学习!

--结束END--

本文标题: 如何使用Java获取国家法定节假日

本文链接: https://lsjlt.com/news/274561.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何使用Java获取国家法定节假日
    这篇文章主要介绍了如何使用Java获取国家法定节假日,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应...
    99+
    2023-06-14
  • 教你怎么用Java获取国家法定节假日
    前言 此节假日为严格按照国家要求的双休和法定节假日并且包含节假日的补班信息,大家可根据自己的需求自定义处理哦。 以下为Maven配置,是程序用到的依赖。版本的话,可以用最新的。 Ma...
    99+
    2024-04-02
  • java获取国家法定节假日(不依赖API)
    java获取国家法定节假日, 由此可获取每月第一个工作日和最后一个工作日 (不依赖API,主要是因为API接口不可靠或计费,此工具依赖国务院发布的节假日基础信息进行解析) 本工具仅供参考学习。各类数据获取需遵守法律法规 package co...
    99+
    2023-09-05
    java 开发语言
  • java怎么获取法定节假日
    Java本身没有直接获取法定节假日的功能,但可以通过调用第三方的接口或使用日历库来实现。1. 调用第三方接口:可以使用一些提供法定节...
    99+
    2023-08-17
    java
  • 生成和获取法定节假日
    1.获取官方节假日信息 在中国政府网获取信息:中国政府网_中央人民政府门户网站  2.复制下面代码 以php为例 public function makeWorkDay($holiday,$exchange_day) {$calen...
    99+
    2023-09-03
    数据库 php 开发语言
  • 国家法定节假日安排,节假日查询API接口有哪些?
    节假日,对于我们每个人来说都息息相关。特别是国家法定节假日的安排,大家都希望清楚知道并合理安排好。因为,节假日是国务院统一安排的,我们就为此编写了这样一个节假日查询API接口,供大家方便查询。 ...
    99+
    2023-09-06
    json php 大数据 数据库 Powered by 金山文档
  • 如何使用Python统计节假日剩余天数
    小编给大家分享一下如何使用Python统计节假日剩余天数,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、前言如何快速的想了解距离节假日还有多少天?接下来使用Py...
    99+
    2023-06-29
  • java中如何获取指定日期是星期几
    取得指定日期是星期几可以采用下面两种方式取得日期是星期几:一、使用Calendar类//根据日期取得星期几 public static String getWeek(Date date){ String[] weeks = {"星期日...
    99+
    2016-09-24
    java 指定日期 星期几
  • 如何使用Python获取昨天的日期
    目录在 Python 中获取昨天的日期Python 中的Date模块在 Python 中获取昨天日期的示例我们将通过多个示例介绍如何使用 Python 获取昨天的日期。 在 Pyth...
    99+
    2023-05-19
    Python获取昨天日期 Python获取日期
  • 如何使用 gspread 获取正确的日期
    问题内容 如何使用 Python 的 gspread 获取电子表格值? 假设有一个单元格,因为指定了 m/d 作为单元格显示格式,所以看起来像 1/1,但实际上包含 2024/1/1。...
    99+
    2024-02-09
    overflow
  • 使用Java如何获取IP地址
    本篇文章给大家分享的是有关使用Java如何获取IP地址,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一、通过IP获取机器名 or 通过机器名获取iphost :主机 ...
    99+
    2023-05-31
    java ip ava
  • 如何使用JS获取当前节点的兄弟/父/子节点
    目录JS获取当前节点的方式:获取子节点:获取父节点: 获取兄弟节点总结JS获取当前节点的方式: 通过事件监听器获取当前节点: <button onclick="fun...
    99+
    2023-05-17
    js获取当前节点的父节点 js获取节点的方法 js获取兄弟节点元素
  • 使用Java如何获取进程的ID
    这期内容当中小编将会给大家带来有关使用Java如何获取进程的ID,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。首先是获取当前Java运行的Java进程ID,这个是网上常见的,也就是Java程序自身将进程I...
    99+
    2023-05-31
    java 进程 ava
  • Java如何使用反射获取list泛型
    这篇文章主要介绍“Java如何使用反射获取list泛型”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java如何使用反射获取list泛型”文章能帮助大家解决问题。通过属性来获取泛型的类型Field[...
    99+
    2023-07-05
  • 如何使用Java获取Json中的数据
    这篇文章主要介绍“如何使用Java获取Json中的数据”,在日常操作中,相信很多人在如何使用Java获取Json中的数据问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用Java获取Json中的数据”的疑...
    99+
    2023-07-06
  • JAVA使用Ip2region获取IP定位信息的操作方法
    目录先安装依赖下载离线IP定位库下面我们定义类封装ip2region测试输出实际使用ip2region - 准确率99.9%的离线IP地址定位库,0.0x毫秒级查询 ip2regio...
    99+
    2024-04-02
  • python中如何使用get获取指定键值
    小编给大家分享一下python中如何使用get获取指定键值,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1、说明在使用字典时,很少直接输出它的内容。一般需要根据指定的键得到相应的结果。Python 中推荐的方法是使用字典对...
    99+
    2023-06-15
  • Java如何使用ConfigurationProperties获取yml中的配置
    目录使用ConfigurationProperties获取yml的配置使用方法@ConfigurationProperties获取不到配置文件属性值问题原因就是使用Configura...
    99+
    2024-04-02
  • 如何在Java中使用executeQuery()获取返回值
    在Java中使用executeQuery()方法获取查询结果需要以下步骤:1. 创建一个数据库连接对象,例如使用JDBC连接数据库:...
    99+
    2023-09-28
    Java
  • 利用Java 如何获取类名与方法名
    这期内容当中小编将会给大家带来有关利用Java 如何获取类名与方法名,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。获取类名:public static void testGe...
    99+
    2023-05-31
    java 类名 方法名
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作