日程开发怎么获取当日节假日信息?节假日查询接口使用详解

简介: 节假日、调休与工作日判定是日历、排班与行情类应用的基础判断。本文以一个节假日查询接口为例,讲解传入一个日期后返回当日是节假日、工作日还是周末、调休补班安排与可选的节日简介。内容覆盖三类接口(单节假日查询、节假日列表、调休日列表)的能力对比,单查询参数 day、needDesc 与返回字段 type、holiday、weekDay、begin/end、holiday_remark、h 的逐项说明,以及调用示例、在线调试顺序、调用规范、能力边界、错误码与常见问题。鉴权统一采用 AppCode 请求头,凭据仅存服务端;数据自 2018 年起、次年 10—11 月随官方通知更新。

日程开发怎么获取当日节假日信息?节假日查询接口使用详解

节假日、调休与工作日判定是日程、排班、投放与日历类应用中反复出现的基础判断。本文以「传入一个日期,即可返回当日是节假日、工作日还是周末,并给出调休补班安排」为核心,讲解一个节假日查询接口的参数设计、调用方式、返回结构、在线调试与工程落地要点,帮助你在业务中快速把「这一天是不是工作日、要不要调休」这类判断从手工维护切换为程序化调用。

能力全景

一、技术简介

节假日数据有三个绕不开的难点。第一,法定节假日的起止与调休补班由国务院每年发布通知确定,年份之间并不完全一致,靠硬编码的日期表极易过期中断。第二,「周末 + 节假日 + 调休补班」三者叠加后,单日到底是休息还是上班不能靠星期几简单推导,例如某些周六因补班需要上班,有些周末本身又属于假期。第三,除了法定假期,公众日、国际日、传统节日的简介等信息也常被日历与资讯类产品需要。

一个成熟的节假日查询接口把上述判断都封装成了标准 HTTP 调用:业务方传入日期,接口返回该日类型(工作日 / 周末 / 节假日)、星期几的中英文、节日名称、起止区间、调休补班备注,以及可选的节日简介。调用方无需维护本地日期表,也无需自行解析国务院通知,直接拿到结构化结果即可用于展示与逻辑分支。

二、能力概览

该能力围绕「按日期取节假日信息」提供三类互补接口,覆盖从单日到整年的不同粒度需求:

三类接口能力对比

接口 方法 入参 返回要点 典型用途
单节假日查询 GET day(如 20260501)、needDesc(可选) 当日类型、节日名、星期几中英文、起止、调休备注、可选节日简介 判定某天是否工作日、日历打点
节假日列表 GET year(如 2026) 全年节假日数组,含起止、名称、调休日列表 年度排班、假期规划
调休日列表 GET year(如 2026) 全年需要上班的调休日列表 考勤、补班安排

三类接口共用同一套鉴权与返回封装,showapi_res_code 表示网关层调用结果(0 为成功),业务数据放在 showapi_res_body 内,字段含义见「调用示例与返回结构」一节。数据自 2018 年起的历年节假日均可查询,次年数据通常在每年 10 月至 11 月国务院发布通知后更新,更新频率以接口实际为准。

三、适用场景

节假日判定看似简单,实际渗透到很多业务环节,下面列出几类常见落地场景,便于判断是否契合你的需求。

场景 用到的能力 说明
日历与日程应用 单节假日查询 在日历组件上标注节假日、显示节日名与调休提示
排班与考勤 节假日列表 + 调休日列表 生成年度排班、区分正常工作日与补班日
金融与行情 单节假日查询 判定是否交易日,决定行情展示与结算逻辑
电商与投放 单节假日查询 大促节点、免息分期活动与假期对齐
资讯与内容 单节假日查询(needDesc) 展示当日国际日 / 传统节日简介

适用场景示意

四、接入流程

接入一个节假日查询接口,整体分为五步。下图给出从获取凭据到完成首次调用的完整链路。

接入流程五步

  1. 获取调用凭据:在控制台完成开通并获取 AppCode 鉴权信息。AppCode 是接口身份凭据,调用时通过请求头 Authorization: APPCODE <appcode> 传入(也可用 AppKey 置于查询参数,二者择一),务必妥善保管、不要硬编码进前端。
  2. 确定接口与参数:按需求选择单节假日查询、节假日列表或调休日列表,填写对应的 day / year 等参数。
  3. 发起请求:使用 GET 请求拼接参数与鉴权信息,向接口端点发起调用。端点地址在控制台对应接入点中查看。
  4. 解析返回:先读 showapi_res_code 判断网关层是否成功,再从 showapi_res_body 内读取业务字段。
  5. 做容错与落地:对参数、空返回、超时做前置校验与重试降级,将结果用于展示或业务判断。

五、调用示例与返回结构

5.1 单节假日查询(本文重点)

请求参数:

参数 类型 必填 说明
day String 否 要查询是否放假的日期,形如 20260501
needDesc Number/String 否 是否返回节日简介;传 1 返回当日公众日、国际日与我国传统节日简介,传 2 仅返回法定节假日简介,不传则不返回

调用方式以 Authorization: APPCODE <appcode> 鉴权为例(多语言示例中的端点地址请用控制台实际地址替换):

import requests

APP_CODE = "<your_appcode>"      # 控制台获取,勿写入前端
DAY = "20260501"

resp = requests.get(
    "/queryHoliday",   # 端点地址以控制台实际为准
    params={
   "day": DAY, "needDesc": 1},
    headers={
   "Authorization": f"APPCODE {APP_CODE}"},
    timeout=5,
)
resp.raise_for_status()
data = resp.json()
print(data["showapi_res_code"], data["showapi_res_body"])

对应返回结构示例(字段含义逐项解释):

{
   
  "showapi_res_code": 0,
  "showapi_res_error": "",
  "showapi_res_body": {
   
    "ret_code": 0,
    "day": "20260501",
    "holiday": "劳动节",
    "type": "3",
    "weekDay": 6,
    "cn": "周六",
    "en": "Saturday",
    "begin": "20260501",
    "end": "20260505",
    "holiday_remark": "5月1日至5日放假调休,共5天,4月26日(周日)上班。",
    "h": [
      {
    "day": "0521", "genus": "public", "name": "世界文化发展日",
        "info": "……节日简介……", "lunaDay": "", "origin": "……" }
    ]
  }
}

关键字段说明:

字段 含义
type 当日类型:1 工作日、2 周末、3 节假日
holiday 节日名称;工作日显示「无」,周末显示「周末」,节假日显示节日名
weekDay / cn / en 星期几的数字、中文、英文名
begin / end 节日或周末的起止日期;工作日时为空串
holiday_remark 调休补班等备注
h 当日节日简介数组;仅当传 needDesc 时返回,无节日时为空

5.2 节假日列表

传 year(形如 2026)返回全年节假日数组,每个元素含 begin、end、holiday、holiday_remark 与调休日列表 inverse_days,适合做年度假期规划。

5.3 调休日列表

传 year 返回全年需要补班上班的调休日列表,适合考勤与排班直接取用。

六、在线调试实录

调试建议按「先验网关 → 再验业务 → 最后验场景」的顺序进行。下图为一次完整调试的轨迹示意。

在线调试轨迹

  1. 在控制台的在线调试入口填入 day=20260501,不传 needDesc,确认返回中 type、holiday、weekDay、holiday_remark 齐全且 ret_code 为 0。
  2. 再传 needDesc=1,观察 h 数组是否出现节日简介,验证可选参数行为符合预期。
  3. 换一个普通工作日(如 day=20260915),确认 type 为 1、begin/end 为空串,验证工作日分支。
  4. 用一个调休补班的周末日期,确认 holiday_remark 能体现「某日上班」的提示。

调试中重点核对:showapi_res_code 是否为 0;showapi_res_body.ret_code 是否为 0;日期格式是否严格为 8 位 YYYYMMDD。

七、调用限制与规范

  • 日期格式:day 必须为 8 位字符串 YYYYMMDD;year 为 4 位字符串。格式错误会返回失败结果。
  • 数据范围:支持自 2018 年起的历年节假日;次年数据在国务院通知发布后更新,更新频率以接口实际为准。
  • 鉴权:统一使用 AppCode(请求头 Authorization: APPCODE <appcode>)或 AppKey 查询参数,凭据泄露后请在控制台及时吊销重发。
  • 频次控制:对同一日期的高频重复调用,建议在应用层做短 TTL 缓存(如节假日结果以「日期 + 年份」为 key 缓存整年),降低实际调用量。
  • 调用扣减:仅当网关返回状态码 200 时计次,非 200 不计入,调用失败不会产生无效消耗。
  • 数据安全:本接口为只读查询,入参为日期,不涉及敏感个人信息;仍建议在日志中对凭据做脱敏处理,不在响应中回显 AppCode。

八、能力边界与免责

  • 接口返回的节假日、调休与工作日判定基于历年已发布数据,数据以官方发布与接口实际返回为准。
  • inverse_days 等调休日字段自 2021 年起的数据有值,早年数据可能缺失。
  • 接口结果可用于日程展示与业务判断,但涉及财务、合规、薪酬等重大决策时,请以官方正式文件为最终依据,接口数据仅供参考。
  • 接口不支持对未来未发布通知的年份做节假日预测,仅覆盖已确认的历年数据。

九、错误码排查

先看网关层 showapi_res_code,再看业务层 showapi_res_body.ret_code。常见情况与处理:

现象 可能原因 处理办法
showapi_res_code 非 0、报鉴权错误 AppCode 缺失或拼写错误、请求头名不匹配 核对 Authorization: APPCODE <appcode> 格式与凭据有效性
showapi_res_code 非 0、限流 短时间调用过密 降低频次、加指数退避重试与熔断降级
ret_code 非 0 参数格式错误(day 非 8 位、year 非 4 位) 校验日期格式后重试
返回体为空或缺 h 未传 needDesc,或当日无节日简介 按需传 needDesc=1;无节日时 h 为空属正常
跨年数据缺失 查询年份超出已发布范围 确认年份在数据支持范围内
网关状态码非 200 网络或临时故障 超时后做有限次重试,失败降级为本地默认规则

十、技术 FAQ

Q1:type 到底怎么理解?
type 取 1 为工作日、2 为周末、3 为节假日。三者互斥,配合 holiday(节日名或「无」「周末」)可唯一判定当日性质。

Q2:调休补班信息从哪里看?
单查询看 holiday_remark 文字备注;需要整年补班日期时用调休日列表接口传 year,或节假日列表接口取每个元素的 inverse_days。

Q3:为什么要传 needDesc?
节日简介(h 数组)数据量较大,默认不返回以减小响应。日历、资讯类产品需要展示简介时再传 1(全部)或 2(仅法定节假日)。

Q4:数据会不会随通知变化?
会。次年节假日在每年 10 月至 11 月国务院通知发布后更新。对「尚未发布通知」的远期年份,结果可能不完整,请以接口实际返回为准。

Q5:前端能直接调吗?
不建议在前端暴露凭据。更稳妥的做法是改由服务端统一承接对外调用,AppCode 保存在服务端,前端只与你的后端交互。

Q6:同一日期反复调用怎么省?
节假日结果稳定,可按「日期」缓存全年一次查询结果,或按「年份」批量拉取节假日列表后本地判断,显著降低调用量。

十一、内容小结

本文以一个节假日查询接口为主线,覆盖了三类接口的能力对比、单节假日查询的参数与返回字段、多语言调用示例、在线调试顺序、调用规范、能力边界、错误码与常见问题。核心要点:

  • 用 day(8 位日期)查询,type 判定工作日 / 周末 / 节假日,holiday、holiday_remark 给出节日名与调休备注,needDesc 可选返回节日简介。
  • 年度需求用节假日列表与调休日列表接口(year)一次拉取,本地缓存复用。
  • 调用统一走 Authorization: APPCODE <appcode> 鉴权,凭据仅存服务端、日志脱敏。
  • 数据自 2018 年起、次年 10—11 月更新;结果可展示、可判断,重大决策以官方文件为准。

小结示意

相关文章
|
19天前
|
数据采集 缓存 JSON
企业三要素认证-企业工商信息核验-校验企业工商信息一致性接入指南
本文介绍企业三要素核验接口的接入方法,包含请求参数说明、多语言调用示例、返回字段结构、错误码排查及适用场景分析,帮助开发者快速完成企业身份信息校验功能的集成。
117 0
企业三要素认证-企业工商信息核验-校验企业工商信息一致性接入指南
|
20天前
|
存储 缓存 自然语言处理
开发如何快速查询银行卡归属地?银行卡 BIN 查询接口使用详解
本文以银行卡 BIN 查询接口(归属地/开户行/卡种识别)为对象,从能力边界、多语言调用示例、返回结构、错误码排查与工程实践五个维度展开,覆盖 500 余家银联渠道银行,响应均值约 33ms。适用于支付风控、客户信息补全、结算对账等金融场景。文中给出 Python/Java/Node.js/PHP 四语言调用代码、前置校验/指数退避重试/熔断降级/日志脱敏等工程规范,并附 6 张配图,可作为快速接入与稳定性加固的技术参考。
189 0
开发如何快速查询银行卡归属地?银行卡 BIN 查询接口使用详解
|
19天前
2026 中秋出行天气指南:杭州 · 桂林 双城观月预报
本报告基于万维易源天气接口数据,对比分析2026年中秋(9月25日)杭州与桂林两地天气:杭州中秋当夜转多云、节后放晴,适宜赏月;桂林全程多雨闷热,需备雨具。两地温差大,推荐“短袖+薄外套”穿搭,并提醒出行前复核最新预报。
246 0
|
3月前
|
JSON API 开发者
国际法定节假日查询-日历查询-节假日查询API接口介绍
节假日API,一站式获取法定假日、国际节日及传统节日信息!支持按年查询节假日列表,或按日期查询当日节日详情(含调休、简介等),返回结构化JSON数据。广泛适用于旅游、电商、OA、日历等场景,省去人工维护成本,提升开发效率与用户体验。
619 0
|
4月前
|
人工智能 固态存储 Linux
用 Codex 的朋友,真的建议你看一眼硬盘写入
Codex CLI 存在日志滥用问题:其 `logs_2.sqlite-wal` 文件持续高频写入 TRACE 级日志(含流式报文、IO 遥测等),实测21天写入37TB,或致消费级SSD提前报废。WAL文件删除后空间不释放,需先终止进程。建议用户立即检查并清理日志。
1611 1
|
5月前
|
消息中间件 网络协议 API
OpenClaw反应慢?:排查是代理慢还是模型慢,7个真实原因分析
本文系统解析OpenClaw“反应慢”的7大真实原因,按网络层→模型层→应用层顺序,提供可落地的排查路径与优化方案,助你精准定位瓶颈、告别盲目怀疑代理,提升响应效率。(239字)
1400 0
|
开发者 异构计算
现在,一行命令使用Ollama运行任意魔搭GGUF模型
为了让开发者更方便地把这些模型用起来,社区最近支持了Ollama框架和ModelScope平台的链接,通过简单的 ollama run命令,就能直接加载运行ModelScope模型库上的GGUF模型。
|
监控 Linux Shell
|
Java Shell Nacos
centos7.x使用nacos2.1.0(解决JAVA_HOME、javac报错)
centos7.x使用nacos2.1.0(解决JAVA_HOME、javac报错)
1010 1

热门文章

最新文章