节假日与调休 API

中国法定节假日、调休上班日查询,含下一个假期倒计时

数据来源:NateScarlet/holiday-cn(国务院办公厅通知)

返回统一的 JSON 格式 { code, message, cached, stale, updatedAt, data },支持跨域,免注册每天可免费调用 100 次,注册后每天 10000 次。

查询某天是否放假/上班及节日名

GET /api/holiday

请求参数

  • date:日期 YYYY-MM-DD,默认今天(北京时间),示例 2026-10-01

返回字段

  • date(string):查询的日期,YYYY-MM-DD(北京时间的日历日)
  • weekday(string):星期几,如 星期四
  • isOffDay(boolean):当天是否休息:type 为 holiday 或 weekend 时为 true
  • isWorkday(boolean):当天是否要上班(与 isOffDay 相反):type 为 workday 或 normal 时为 true
  • type(string):日期类型,取值:holiday(法定节假日放假,含假期中的周末)、workday(调休上班日,通常是被调成上班的周末)、weekend(普通周末,休息)、normal(普通工作日,上班)
  • name(string|null):所属节假日名称(如 春节、国庆节;两节连休时可能是 "国庆节、中秋节")。仅 type 为 holiday 或 workday 时有值,weekend、normal 为 null
  • note(string):中文说明:holiday 为 "<节日>假期",workday 为 "<节日>调休上班",weekend 为 "周末",normal 为 "工作日"
  • published(boolean):该年放假安排是否已有数据。为 false 时表示国务院尚未公布(或数据源暂无),type 只按周末/工作日推断,不包含法定假日与调休

下一个法定假期及倒计时天数

GET /api/holiday/next

请求参数

  • date:从哪天开始算,默认今天(北京时间),示例 2026-09-24

返回字段

  • today(string):计算基准日期,YYYY-MM-DD(默认北京时间今天)
  • current(object|null):基准日期正处于的假期;不在假期中时为 null
  • current.name(string):假期名称,如 国庆节
  • current.start(string):放假第一天,YYYY-MM-DD
  • current.end(string):放假最后一天,YYYY-MM-DD
  • current.days(number):连续放假天数(含假期中的周末)
  • current.workdays(array):该节日对应的调休上班日(YYYY-MM-DD 字符串数组),没有调休时为空数组
  • current.dayIndex(number):基准日期是本次假期的第几天(从 1 开始)
  • next(object|null):基准日期之后最近开始的一个假期(开始日期晚于基准日期)。只在今年和明年的放假安排中查找,明年安排尚未公布且今年已没有假期时为 null
  • next.name(string):假期名称,如 国庆节
  • next.start(string):放假第一天,YYYY-MM-DD
  • next.end(string):放假最后一天,YYYY-MM-DD
  • next.days(number):连续放假天数(含假期中的周末)
  • next.workdays(array):该节日对应的调休上班日(YYYY-MM-DD 字符串数组),没有调休时为空数组
  • next.daysUntil(number):距离假期开始还有几天(放假第一天减基准日期)

某年全部放假安排与调休日

GET /api/holiday/year

请求参数

  • year:年份,默认今年,示例 2026

返回字段

  • year(number):年份
  • papers(array):国务院办公厅放假通知原文链接(字符串数组),来自 holiday-cn;使用内置数据或尚未公布时为空数组
  • days(array):当年所有放假日与调休上班日,按日期升序;不含普通周末。尚未公布时为空数组
  • days[].name(string):所属节假日名称,如 春节
  • days[].date(string):日期,YYYY-MM-DD
  • days[].isOffDay(boolean):true 为放假,false 为调休上班
  • source(string):数据来源:holiday-cn(从 NateScarlet/holiday-cn 获取)、builtin(上游不可用,使用内置的国务院安排)、none(该年安排尚未公布,days 与 periods 为空)
  • periods(array):按连续日期合并后的假期段,按时间先后排列
  • periods[].name(string):假期名称,如 国庆节
  • periods[].start(string):放假第一天,YYYY-MM-DD
  • periods[].end(string):放假最后一天,YYYY-MM-DD
  • periods[].days(number):连续放假天数(含假期中的周末)
  • periods[].workdays(array):该节日对应的调休上班日(YYYY-MM-DD 字符串数组),没有调休时为空数组