工作日计算 API
按中国法定节假日与调休安排统计两个日期之间的工作日,或推算 N 个工作日之后(之前)的日期
数据来源:NateScarlet/holiday-cn(与 /api/holiday 同源,含内置兜底)
返回统一的 JSON 格式 { code, message, cached, stale, updatedAt, data },支持跨域,免注册每天可免费调用 100 次,注册后每天 10000 次。
工作日统计 / 推算 N 个工作日后的日期
GET /api/workdays
请求参数
start:开始日期 YYYY-MM-DD,默认今天(北京时间),示例2026-09-28end:结束日期 YYYY-MM-DD(含当天)。传 end 统计 start~end 的工作日(最多 1100 天),与 days 二选一,示例2026-10-11days:工作日数(-500~500):推算 start 之后第 N 个工作日(start 当天不算),负数往前推;与 end 二选一,示例10
返回字段
mode(string):计算方式:between(统计区间,传了 end)或 add(推算日期,传了 days)start(string):开始日期 YYYY-MM-DDend(string|null):between:结束日期;add 为 nulldays(number|null):add:请求的工作日数;between 为 nulltotalDays(number|null):between:区间总天数(含首尾);add 为 nullworkdays(number|null):between:需要上班的天数(普通工作日 + 调休上班日);add 为 nulloffDays(number|null):between:休息天数 = weekends + holidays;add 为 nullweekends(number|null):between:普通周末休息天数(不含法定假期中的周末);add 为 nullholidays(number|null):between:法定节假日放假天数(含假期中的周末);add 为 nulladjustedWorkdays(number|null):between:其中调休上班(周末补班)的天数;add 为 nullholidayDetail(array|null):between:区间内各假期占用的放假天数;add 为 nullholidayDetail[].name(string):假期名称,如 国庆节holidayDetail[].days(number):该假期落在区间内的放假天数result(string|null):add:推算出的日期 YYYY-MM-DD(days=0 时为 start 本身);between 为 nullweekday(string|null):add:result 是星期几;between 为 nullcalendarDays(number|null):add:从 start 到 result 跨越的自然日天数;between 为 nullyears(array):计算用到的各年份放假安排及其来源years[].year(number):年份years[].source(string):数据来源:holiday-cn(上游)、builtin(上游不可用,用内置国务院安排)、none(该年安排尚未公布)、unavailable(上游失败且无内置数据,已降级为只按周末计算)years[].published(boolean):该年是否有放假安排数据;为 false 时该年只按周六日休息计算,结果可能与实际不符complete(boolean):用到的所有年份是否都有放假安排数据degraded(boolean):是否有年份因上游失败降级为只按周末计算(years[].source 为 unavailable)