获取当年所有工作日及节假日信息

1 背景

因为业务需求,需要获取当年所有节假日和工作日信息,机缘巧合找到了一个接口,使用还不错,因为有用户量大会导致次数受限,使用跑批入库方案

2 接口地址

https://api.apihubs.cn/holiday/get

3 请求参数

get请求哈

参数描述
field指定返回结果包含的字段,多个使用英文逗号分隔 枚举
year指定要查询的年份,格式为 Y ,多个使用英文逗号分隔
month指定要查询的月份,格式为 Ym ,多个使用英文逗号分隔
date指定要查询的日期,格式为 Ymd ,多个使用英文逗号分隔
yearweek指定要查询一年中的第几周,格式为 oW ,多个使用英文逗号分隔
yearday指定要查询一年中的第几天,格式为 z ,多个使用英文逗号分隔
holiday指定要查询的节假日,99为全部节假日,多个使用英文逗号分隔 枚举
holiday_overtime指定要查询的节假日调休(加班),99为全部调休,多个使用英文逗号分隔 枚举
week指定要查询的星期,多个使用英文逗号分隔 枚举
workday指定查询是否为工作日(包含调休在内需要上班的日子) 枚举
weekend指定查询是否为周末(星期六和星期日) 枚举
holiday_today指定查询是否为节日当天 枚举
holiday_legal指定查询是否为法定节假日(三倍工资)枚举
holiday_recess指定查询是否为假期节假日(节日是否放假)枚举
lunar指定年份、月份、日期、天数参数是否查询农历日期
cn指定返回结果是否包含中文结果,默认返回的都是数字日期和枚举数字有利于逻辑判断不利于显示
page分页页码
size分页每页数量

4 响应

  1. code 成功时始终为0,失败时为 枚举值 中的key
  2. msg 成功时始终为 ok 失败时为 枚举值 中的value
  3. data 成功时返回数据,失败时部分返回失败数据,如表单验证失败
  4. data.page 当前页码
  5. data.size 当前每页数量
  6. data.total 根据查询条件查到的总数量
  7. data.list 节假日列表
  8. 所有字段都可以通过 field 参数进行按需使用
{
    "code": "0",
    "msg": "ok",
    "data": ""
}

5 返回示例

默认会返回数字日期和枚举码

 {
                "year": 2023,
                "month": 202305,
                "date": 20230531,
                "yearweek": 202322,
                "yearday": 151,
                "lunar_year": 2023,
                "lunar_month": 202304,
                "lunar_date": 20230413,
                "lunar_yearday": 130,
                "week": 3,
                "weekend": 2,
                "workday": 1,
                "holiday": 10,
                "holiday_or": 10,
                "holiday_overtime": 10,
                "holiday_today": 2,
                "holiday_legal": 2,
                "holiday_recess": 2
            }

当开启了cn查询参数,会将查取的字段名加上 _cn 后缀返回可视化的新,并同原字段一起返回。如下

 {
                "year": 2023,
                "month": 202305,
                "date": 20230531,
                "yearweek": 202322,
                "yearday": 151,
                "lunar_year": 2023,
                "lunar_month": 202304,
                "lunar_date": 20230413,
                "lunar_yearday": 130,
                "week": 3,
                "weekend": 2,
                "workday": 1,
                "holiday": 10,
                "holiday_or": 10,
                "holiday_overtime": 10,
                "holiday_today": 2,
                "holiday_legal": 2,
                "holiday_recess": 2,
                "year_cn": "2023年",
                "month_cn": "2023年05月",
                "date_cn": "2023年05月31日",
                "yearweek_cn": "2023年第22周",
                "yearday_cn": "2023年第151天",
                "lunar_year_cn": "二零二三年",
                "lunar_month_cn": "二零二三年四月",
                "lunar_date_cn": "二零二三年四月十三",
                "lunar_yearday_cn": "2023年第130天",
                "week_cn": "星期三",
                "weekend_cn": "非周末",
                "workday_cn": "工作日",
                "holiday_cn": "非节假日",
                "holiday_or_cn": "非节假日",
                "holiday_overtime_cn": "非节假日调休",
                "holiday_today_cn": "非节日当天",
                "holiday_legal_cn": "非法定节假日",
                "holiday_recess_cn": "非假期节假日"
            }

6 参数描述

参数描述2
year公历年份
month公历月份
date公历日期
yearweek公历一年中的第几周,注意这里的年份是ISO-8601周编号年份,始终以周一至周日为一周。如需获取7天为一周直接使用年份中的天数除7即可。
yearday公历一年中的第几天
lunar_year农历年份
lunar_month农历月份
lunar_date农历日期
lunar_yearday农历一年中的第几天
week星期几
weekend是否为周末
workday是否为工作日(包含调休在内需要上班的日子)
holiday节假日,这里使用两位数字枚举表示节假日,其中特殊数字10表示非节假日,特殊数字99表示全部节假日
holiday_or其他节假日,枚举与节假日相同,表示同一天中的另一个节日,如 2020-10-01
holiday_overtime节假日调休,枚举与节假日相同
holiday_today是否为节日当天
holiday_legal是否为法定节假日(三倍工资)
holiday_recess是否为假期节假日(节日是否放假)

7 数据库表结构

CREATE TABLE `date_info` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `year` int(11) DEFAULT NULL COMMENT '公历年份',
  `month` int(50) DEFAULT NULL COMMENT '公历月份',
  `date` int(50) DEFAULT NULL COMMENT '公历日期',
  `year_week` int(50) DEFAULT NULL COMMENT '公历一年中的第几周',
  `year_day` int(50) DEFAULT NULL COMMENT '公历一年中的第几天',
  `lunar_year` int(50) DEFAULT NULL COMMENT '农历年份',
  `lunar_month` int(50) DEFAULT NULL COMMENT '农历月份',
  `lunar_date` int(50) DEFAULT NULL COMMENT '农历日期',
  `lunar_yearday` int(50) DEFAULT NULL COMMENT '农历一年中的第几天',
  `week` int(50) DEFAULT NULL COMMENT '星期几',
  `weekend` int(50) DEFAULT NULL COMMENT '是否为周末(1:是,2:否)',
  `workday` int(50) DEFAULT NULL COMMENT '是否为工作日(1:是,2:否)',
  `holiday` int(50) DEFAULT NULL COMMENT '节假日(10表示非节假日)',
  `holiday_or` int(50) DEFAULT NULL COMMENT '其他节假日',
  `holiday_overtime` int(50) DEFAULT NULL COMMENT '节假日调休(00:非,其他为是)',
  `holiday_today` int(50) DEFAULT NULL COMMENT '是否为节日当天(1:是,2:否)',
  `holiday_legal` int(50) DEFAULT NULL COMMENT '是否为法定节假日(1:是,2:否)',
  `holiday_recess` int(50) DEFAULT NULL COMMENT '是否为假期节假日(1:是,2:否)',
  `updated_time` datetime DEFAULT NULL COMMENT '修改时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='日期表';
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员黄小青

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值