v1 稳定

节假日判断 API

节假日判断、公历农历互查、节气、生肖星座与年度二十四节气

Base URL https://www.resapi.cn/v1/holidays

简介

判断法定假日与调休;公历与农历双向换算;查询节气、生肖与星座;按年列出 24 节气。适用于日历、排班与文化展示场景。

GET /v1/holidays/check

判断单日是否为节假日。

查询参数

名称 类型 必填 说明 示例
date string 日期,格式 YYYY-MM-DD 2026-10-01

响应字段

字段 说明
date 查询日期
weekday / weekday_index 星期(周日为 0)
is_weekend 是否周末
is_legal_holiday 是否法定休假日
holiday_name 节日名称(命中时返回)
is_adjusted_workday 是否调休上班日
is_holiday 是否休息日(综合周末 + 法定休假 + 调休)
is_workday 是否工作日(is_holiday 取反)

响应示例

{
  "data": {
    "date": "2026-10-01",
    "weekday": "周四",
    "weekday_index": 4,
    "is_weekend": false,
    "is_legal_holiday": true,
    "holiday_name": "国庆节",
    "is_adjusted_workday": false,
    "is_holiday": true,
    "is_workday": false
  }
}

GET /v1/holidays/range

批量查询日期区间(含起止日)。

查询参数

名称 类型 必填 说明 示例
start string 开始日期,格式 YYYY-MM-DD 2026-10-01
end string 结束日期,格式 YYYY-MM-DD 2026-10-08

限制:单次区间最多 366 天。

响应说明

  • data:每天的判断结果(结构与 /check 一致)
  • meta:区间统计信息(总天数、假日天数、工作日天数等)

响应示例

{
  "data": [
    {
      "date": "2026-10-01",
      "weekday": "周四",
      "weekday_index": 4,
      "is_weekend": false,
      "is_legal_holiday": true,
      "holiday_name": "国庆节",
      "is_adjusted_workday": false,
      "is_holiday": true,
      "is_workday": false
    }
  ],
  "meta": {
    "start": "2026-10-01",
    "end": "2026-10-08",
    "total_days": 8,
    "holiday_days": 7,
    "workday_days": 1
  }
}

GET /v1/holidays/countdown

返回从“当前日期”到当年 12-31 的法定节假日倒计时(仅法定休假日,不含调休上班日)。
默认只返回下一个节假日;指定 all=1 返回剩余全部节假日列表。

查询参数

名称 类型 必填 说明 示例
from string 基准日期,格式 YYYY-MM-DD,默认今天 2026-06-02
all bool 1/true 返回全部,默认返回下一个 1

响应字段

字段 说明
data 在不同模式下结构不同:
  • 默认模式(不传 all):data 为单个对象(下一个节假日)
  • 全量模式(all=1):data 为对象数组(到年底全部剩余节假日)

对象字段:

字段 说明
date 节假日日期
holiday_name 节日名称
weekday 星期
days_remaining 距离基准日剩余天数(当天为 0)

响应示例(默认:下一个节假日)

{
  "data": {
    "date": "2026-09-25",
    "holiday_name": "中秋节",
    "weekday": "周五",
    "days_remaining": 115
  },
  "meta": {
    "from": "2026-06-02",
    "to": "2026-12-31",
    "year": 2026,
    "total_holidays": 8
  }
}

响应示例(all=1:全部剩余节假日)

{
  "data": [
    {
      "date": "2026-09-25",
      "holiday_name": "中秋节",
      "weekday": "周五",
      "days_remaining": 115
    },
    {
      "date": "2026-10-01",
      "holiday_name": "国庆节",
      "weekday": "周四",
      "days_remaining": 121
    }
  ],
  "meta": {
    "from": "2026-06-02",
    "to": "2026-12-31",
    "year": 2026,
    "total_holidays": 8
  }
}

GET /v1/holidays/solar-to-lunar

公历日期转农历,返回公历/农历对照及生肖、星座。

查询参数

名称 类型 必填 说明 示例
date string 公历日期 YYYY-MM-DD 2026-06-03

响应字段

字段 说明
solar 公历日期、星期
lunar 农历年月日、闰月、干支、展示名
zodiac 农历年生肖
constellation 对应公历日期的星座
note 说明

响应示例

{
  "data": {
    "solar": {
      "date": "2026-06-03",
      "weekday": "周三",
      "weekday_index": 3
    },
    "lunar": {
      "year": 2026,
      "month": 4,
      "month_name": "四月",
      "day": 18,
      "day_name": "十八",
      "is_leap_month": false,
      "display": "农历丙午年四月十八",
      "year_ganzhi": "丙午",
      "month_ganzhi": "癸巳",
      "day_ganzhi": "戊申"
    },
    "zodiac": { "name": "马", "index": 6, "year_ganzhi": "丙午" },
    "constellation": { "name": "双子", "full_name": "双子座", "index": 2 },
    "note": "农历与公历换算依据天文算法,仅供文化参考;生肖按农历年地支,星座按公历日期划分"
  }
}

GET /v1/holidays/lunar-to-solar

农历日期转公历,返回公历/农历对照及生肖、星座。

查询参数

名称 类型 必填 说明 示例
lunar_year int 农历年 2026
lunar_month int 农历月(1–12) 4
lunar_day int 农历日 18
leap_month bool 1/true 表示闰月(也可用 leap 1

闰月示例:2023 年闰二月十五 → lunar_year=2023&lunar_month=2&lunar_day=15&leap_month=1,对应公历 2023-04-05

响应字段

/solar-to-lunar 相同(solar + lunar + zodiac + constellation)。

响应示例

{
  "data": {
    "solar": {
      "date": "2026-06-03",
      "weekday": "周三",
      "weekday_index": 3
    },
    "lunar": {
      "year": 2026,
      "month": 4,
      "month_name": "四月",
      "day": 18,
      "day_name": "十八",
      "is_leap_month": false,
      "display": "农历丙午年四月十八",
      "year_ganzhi": "丙午",
      "month_ganzhi": "癸巳",
      "day_ganzhi": "戊申"
    },
    "zodiac": { "name": "马", "index": 6, "year_ganzhi": "丙午" },
    "constellation": { "name": "双子", "full_name": "双子座", "index": 2 },
    "note": "农历与公历换算依据天文算法,仅供文化参考;生肖按农历年地支,星座按公历日期划分"
  }
}

GET /v1/holidays/lunar

查询指定公历日期的农历信息、当前节气、生肖(农历年属相)与星座(按公历划分)。比 /solar-to-lunar 额外返回 solar_term

查询参数

名称 类型 必填 说明 示例
date string 日期,格式 YYYY-MM-DD 2026-06-03

响应字段

字段 说明
date 查询公历日期
lunar 农历年月日、闰月标记、干支、展示名
solar_term 当前所处节气、节气第几天、节/气类型、节气起始日
zodiac 生肖名、索引、农历年干支
constellation 星座简称、全称(如「双子座」)、索引
note 计算说明与免责提示

响应示例

{
  "data": {
    "date": "2026-06-03",
    "lunar": {
      "year": 2026,
      "month": 4,
      "month_name": "四月",
      "day": 18,
      "day_name": "十八",
      "is_leap_month": false,
      "display": "农历丙午年四月十八",
      "year_ganzhi": "丙午",
      "month_ganzhi": "癸巳",
      "day_ganzhi": "戊申"
    },
    "solar_term": {
      "name": "小满",
      "day_of_term": 14,
      "is_jie": false,
      "is_qi": true,
      "start_date": "2026-05-21"
    },
    "zodiac": {
      "name": "马",
      "index": 6,
      "year_ganzhi": "丙午"
    },
    "constellation": {
      "name": "双子",
      "full_name": "双子座",
      "index": 2
    },
    "note": "农历与节气依据天文算法计算,仅供文化参考;生肖按农历年地支,星座按公历日期划分"
  }
}

GET /v1/holidays/terms

列出指定公历年的 24 节气及对应日期(从小寒起依次排列)。

查询参数

名称 类型 必填 说明 示例
year int 公历年份,默认当年 2026

响应字段

data 为数组,每项:

字段 说明
name 节气名称
date 节气起始公历日 YYYY-MM-DD
is_jie 是否为「节」
is_qi 是否为「气」
index 节气序号(库内索引)

meta.year / meta.count / meta.note 为辅助信息。

响应示例

{
  "data": [
    { "name": "小寒", "date": "2026-01-05", "is_jie": true, "is_qi": false, "index": 1 },
    { "name": "大寒", "date": "2026-01-20", "is_jie": true, "is_qi": false, "index": 2 }
  ],
  "meta": {
    "year": 2026,
    "count": 24,
    "note": "从小寒起依次列出 24 节气及对应公历日期"
  }
}