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

简介: 节假日、调休与工作日判定是日历、排班与行情类应用的基础判断。本文以一个节假日查询接口为例,讲解传入一个日期后返回当日是节假日、工作日还是周末、调休补班安排与可选的节日简介。内容覆盖三类接口(单节假日查询、节假日列表、调休日列表)的能力对比,单查询参数 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)返回全年节假日数组,每个元素含 beginendholidayholiday_remark 与调休日列表 inverse_days,适合做年度假期规划。

5.3 调休日列表

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

六、在线调试实录

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

在线调试轨迹

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

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

七、调用限制与规范

  • 日期格式day 必须为 8 位字符串 YYYYMMDDyear 为 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 到底怎么理解?
type1 为工作日、2 为周末、3 为节假日。三者互斥,配合 holiday(节日名或「无」「周末」)可唯一判定当日性质。

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

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

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

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

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

十一、内容小结

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

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

小结示意

相关文章
|
6天前
|
人工智能 API 内存技术
刚刚 DeepSeek V4.1 Flash 开启内测,1 分钟教你用上!
刚刚 DeepSeek 内测群发布了 DeepSeek V4.1 Flash 中间版本内测的消息,这次的模型采用了新的结构,原生支持多模态、能力更强、速度更快、且成本更低。
1764 10
|
11天前
|
人工智能 运维 BI
阿里云千问办公QwenWork深度解析:基于Qwen3.8,六大核心能力重构企业全自动化工作流与计费选型指南
传统AI办公工具大多停留在对话问答、文档摘要、简单文案生成层面,只能完成单点碎片化任务,无法自主拆解复杂业务流程,很难串联多工具、多文档、外部业务系统完成端到端完整工作交付。很多企业在落地AI办公的时候,需要组合多款不同工具,来回切换界面,手动复制粘贴中间结果,智能化改造落地门槛居高不下。千问办公QwenWork是整合多款智能体产品能力打造的一体化企业办公智能体平台,底层基座依托Qwen3.8大模型,打通桌面端Agent、云端Agent、企业协同Agent三种运行形态,不再局限简单问答,接收业务目标之后自主拆解任务步骤,调用各类工具,处理文档、表格、浏览器自动化、数据查询,直接输出可交付的办公
1639 2
|
12天前
|
网络协议 Linux iOS开发
【2026实测】Wireshark下载+安装+汉化+使用教程(图文版,巨详细)
Wireshark 是一款免费开源的网络协议分析工具,可实时捕获、解析并可视化数据包,助你诊断网络故障、分析通信协议(如HTTP、DNS、TCP等)。支持Windows/macOS/Linux,含中文界面,新手入门便捷。(239字)
|
7天前
|
SQL 人工智能 前端开发
QoderWake 1.0 正式发布:从桌面里的 Agent,到工作现场的数字员工
QoderWake v1.0正式发布:企业级数字员工团队平台。支持“一句话建岗”,预置10类特训岗位;Waker常驻钉钉/飞书群,@即响应、自动协作、跨任务记忆;具备定时/事件/API多触发方式与统一任务看板;已沉淀27.6万条记忆、12.3万项技能,助力组织实现人机协同增效。
774 2
|
5天前
|
缓存 测试技术 API
DeepSeek V4.1 Flash 内测接入:改个模型名即可调用(附代码)
DeepSeek V4.1 Flash 内测不用申请,base_url 不变、改个模型名就能调,9/10 到期。本文讲清接入、计费限流与多模态注意点。
789 0
DeepSeek V4.1 Flash 内测接入:改个模型名即可调用(附代码)
|
19天前
|
人工智能 自然语言处理 安全
阿里云千问办公、Qoder Teams、Qoder CN区别与选择指南:模型能力、适用场景与最新活动参考
本文聚焦阿里云2026年推出的三款自研AI办公产品,清晰拆解千问办公、Qoder Teams、Qoder CN的差异化定位与能力边界:千问办公主打职场全场景提效,支持自然语言指令一键完成PPT生成、数据分析等高频办公任务;Qoder Teams面向程序员团队,深度整合AI代码生成、团队协同与企业知识库能力;Qoder CN则专为金融、政务等强合规场景打造,实现数据不出境与VPC私有化部署。文章同步给出分场景选型指南与最新活动定价,帮助不同类型的企业按需组合产品,实现业务岗、研发岗与强合规场景的AI能力全覆盖。
3950 5
阿里云千问办公、Qoder Teams、Qoder CN区别与选择指南:模型能力、适用场景与最新活动参考
|
11天前
|
人工智能 自然语言处理 安全
阿里云AI数智鉴密:AI 生成内容如何拿到一张"防篡改的身份证"
隐形水印 + C2PA签名:让AI生成内容“持证上岗”。
1154 0
|
12天前
|
缓存 数据可视化 开发工具
DeepSeek Harness 怎么更新?dsh 更新完整指南:更新本体(npx、npm、源码)与更新插件两种方式
DeepSeek Harness 的更新分两层:本体更新(npx 自动最新、npm update -g、源码 git pull)与插件更新(插件市场点更新、命令行覆盖安装)。本文按「准备 → 更新本体 → 更新插件 → 更新后检查」四步走,覆盖新手常见疑问。
1440 1
DeepSeek Harness 怎么更新?dsh 更新完整指南:更新本体(npx、npm、源码)与更新插件两种方式