java调用api接口自动判断节假日信息

简介: java调用api接口自动判断节假日信息

       首先感谢github大佬的分享,大家也可以去网址下面去看这个api接口如何使用,下面我来简单介绍一下。

       github地址:

https://github.com/tomandjerry136/hodiday?tab=readme-ov-file

该接口支持按年、月、日来查询当天的信息,包括是否为工作日、是否调休、如果为节假日的话节假日的信息等...非常好用,下面是这个接口会返回的字段

{
    "daytype": 1,//0表示工作日、1节假日、2双休日、3调休日(需上班)
    "holiday": "元旦节",//节假日情况
    "rest": 1,//是否休息,0为不休息,1为休息
    "date": "2024-01-01",//日期
    "week": 1,//星期几,0为星期日,1为星期一,依次类推
    "week_desc_en": "Monday",//星期几的英文描述
    "week_desc_cn": "星期一"//星期几的中文描述
  }
image.gif

根据年份获取

       接口地址:

https://publicapi.xiaoai.me/holiday/year

例如 https://publicapi.xiaoai.me/holiday/year?date=2024

响应示例:

{

 "code": 0,

 "msg": "ok",

 "data": [

   {

     "daytype": 1,

     "holiday": "元旦节",

     "rest": 1,

     "date": "2024-01-01",

     "week": 1,

     "week_desc_en": "Monday",

     "week_desc_cn": "星期一"

   }

 ]

}

实际请求截图:

image.gif 编辑

根据月份获取

       接口地址:

https://publicapi.xiaoai.me/holiday/month

例如 https://publicapi.xiaoai.me/holiday/month?date=2024-01

响应示例:

{

 "code": 0,

 "msg": "ok",

 "data": [

   {

     "daytype": 1,

     "holiday": "元旦节",

     "rest": 1,

     "date": "2024-01-01",

     "week": 1,

     "week_desc_en": "Monday",

     "week_desc_cn": "星期一"

   }

 ]

}

实际请求截图:

image.gif 编辑

根据日期获取

       接口地址:

https://publicapi.xiaoai.me/holiday/day

例如 https://publicapi.xiaoai.me/holiday/day?date=2024-01-01

响应示例:

{

 "code": 0,

 "msg": "ok",

 "data": [

   {

     "daytype": 1,

     "holiday": "元旦节",

     "rest": 1,

     "date": "2024-01-01",

     "week": 1,

     "week_desc_en": "Monday",

     "week_desc_cn": "星期一"

   }

 ]

}

实际请求截图:

image.gif 编辑

       我在程序中的用法,以Java为例给大家提供一个我调用这个接口的示例:

1.首先声明该api接口的路径

/**
     * 节假日接口
     * 该api接口查看链接:https://github.com/tomandjerry136/hodiday?tab=readme-ov-file
     * 示例返回如下
     * {
     *     "daytype": 1,//0表示工作日、1节假日、2双休日、3调休日(需上班)
     *     "holiday": "元旦节",//节假日情况
     *     "rest": 1,//是否休息,0为不休息,1为休息
     *     "date": "2024-01-01",//日期
     *     "week": 1,//星期几,0为星期日,1为星期一,依次类推
     *     "week_desc_en": "Monday",//星期几的英文描述
     *     "week_desc_cn": "星期一"//星期几的中文描述
     *   }
     */
    private static final String HOLIDAY_URL = "https://publicapi.xiaoai.me/holiday/day?date=";

image.gif

2.调用

// 获取当前日期
        LocalDate currentDate = LocalDate.now();
        String url = HOLIDAY_URL + currentDate;
        OkHttpClient client = new OkHttpClient();
        Request request = new Request.Builder()
                .url(url)
                .build();
        try (Response response = client.newCall(request).execute()) {
            if (!response.isSuccessful()) throw new IOException("Unexpected code " + response);
            ObjectMapper objectMapper = new ObjectMapper();
            JsonNode jsonResponse = objectMapper.readTree(response.body().string());
            JsonNode data = jsonResponse.get("data");
            if (data.isArray()) {
                 //data里面就是返回的Json数据,可以拿出来配合自己的逻辑进行判断
                for (JsonNode holidayNode : data) {
                    //0表示工作日、1节假日、2双休日、3调休日(需上班)
                    int dayType = holidayNode.get("daytype").asInt();
                    //节假日情况
                    String holidayName = holidayNode.get("holiday").asText();
                    //是否休息
                    int rest = holidayNode.get("rest").asInt();
                    // 如果是节假日(daytype=1)或今天休息(rest=1)
                    if (dayType == 1 || rest == 1) {
                        return;
                    }
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }

image.gif

如果有关于任何开发上的问题欢迎大家我们一起交流学习!


目录
相关文章
|
5月前
|
Java API 数据处理
Java新特性:使用Stream API重构你的数据处理
Java新特性:使用Stream API重构你的数据处理
|
4月前
|
缓存 监控 前端开发
顺企网 API 开发实战:搜索 / 详情接口从 0 到 1 落地(附 Elasticsearch 优化 + 错误速查)
企业API开发常陷参数、缓存、错误处理三大坑?本指南拆解顺企网双接口全流程,涵盖搜索优化、签名验证、限流应对,附可复用代码与错误速查表,助你2小时高效搞定开发,提升响应速度与稳定性。
|
4月前
|
JSON 算法 API
Python采集淘宝商品评论API接口及JSON数据返回全程指南
Python采集淘宝商品评论API接口及JSON数据返回全程指南
|
5月前
|
数据可视化 测试技术 API
从接口性能到稳定性:这些API调试工具,让你的开发过程事半功倍
在软件开发中,接口调试与测试对接口性能、稳定性、准确性及团队协作至关重要。随着开发节奏加快,传统方式已难满足需求,专业API工具成为首选。本文介绍了Apifox、Postman、YApi、SoapUI、JMeter、Swagger等主流工具,对比其功能与适用场景,并推荐Apifox作为集成度高、支持中文、可视化强的一体化解决方案,助力提升API开发与测试效率。
|
4月前
|
JSON API 数据安全/隐私保护
Python采集淘宝拍立淘按图搜索API接口及JSON数据返回全流程指南
通过以上流程,可实现淘宝拍立淘按图搜索的完整调用链路,并获取结构化的JSON商品数据,支撑电商比价、智能推荐等业务场景。
|
5月前
|
JSON 前端开发 API
如何调用体育数据足篮接口API
本文介绍如何调用体育数据API:首先选择可靠服务商并注册获取密钥,接着阅读文档了解基础URL、端点、参数及请求头,然后使用Python等语言发送请求、解析JSON数据,最后将数据应用于Web、App或分析场景,同时注意密钥安全、速率限制与错误处理。
573 152
|
5月前
|
Java 大数据 API
Java Stream API:现代集合处理与函数式编程
Java Stream API:现代集合处理与函数式编程
318 100
|
5月前
|
Java API 数据处理
Java Stream API:现代集合处理新方式
Java Stream API:现代集合处理新方式
338 101
|
5月前
|
并行计算 Java 大数据
Java Stream API:现代数据处理之道
Java Stream API:现代数据处理之道
285 101
|
4月前
|
缓存 数据可视化 定位技术
快递鸟快递API技术指南:获取物流轨迹信息与轨迹地图的解决方案
在当今电商竞争激烈的环境中,物流体验已成为提升用户满意度的关键因素。研究表明,超过 75% 的消费者会因物流信息不透明而放弃下单。
739 1