查询中国大陆法定节假日、工作日、调休安排及企业纳税申报日历。数据来源权威:节假日来自国务院每年发布的通知(gov.cn),纳税申报日历来自国家税务总局(chinatax.gov.cn)。触发场景:(1) 判断某天是否为工作日/节假日/调休日;(2) 计算工作日数量、加减工作日;(3) 查询纳税申报截止日(遇节假日...
text
用户查询 → 检查本地数据是否覆盖该年份
├── 有 → 直接运行查询脚本
└── 无 → 从官网抓取 → 解析 → 固化写入 → 运行查询脚本
bash
python3 ~/.openclaw/skills/cn-calendar/scripts/fetch_holidays.py <YYYY> --check
"status": "exists" → 直接跳到第三步执行查询"status": "missing" → 执行第二步抓取直接抓取 JSON(已索引国务院官方通知,数据可信):
text
web_fetch: https://raw.githubusercontent.com/NateScarlet/holiday-cn/master/YYYY.json
返回格式: days[] 数组,每条包含 date、 isOffDay、 name:
isOffDay: true → 法定节假日(非工作日)isOffDay: false → 调休补班日(原为周末,需上班)若该年份 JSON 尚未创建(返回 404),说明国务院通知未发布,告知用户以官方为准。
从通知正文中提取:
生成格式参考 references/holidays-2025.md,内容包括:
直接用 write 工具写入: ~/.openclaw/skills/cn-calendar/references/holidays-YYYY.md
将新年份的假期和调休数据以以下格式追加到 workday_query.py 中,位于 ALL_HOLIDAYS = 行之前:
python
# YYYY年法定节假日(来源:国务院)
HOLIDAYS_YYYY = {
date(YYYY, M, D),
# ...
}
# YYYY年调休工作日(来源:国务院)
WORKDAYS_YYYY = {
date(YYYY, M, D),
# ...
}
同时更新文件末尾的合并集合:
python
ALL_HOLIDAYS = HOLIDAYS_2025 | HOLIDAYS_2026 | HOLIDAYS_YYYY
ALL_EXTRA_WORKDAYS = WORKDAYS_2025 | WORKDAYS_2026 | WORKDAYS_YYYY
更新完成后,用 exec 运行一条简单测试确认脚本无语法错误:
bash
python3 ~/.openclaw/skills/cn-calendar/scripts/workday_query.py is_workday YYYY-01-01
脚本路径: ~/.openclaw/skills/cn-calendar/scripts/workday_query.py
bash
# 判断某天是否为工作日
python3 <skill_dir>/scripts/workday_query.py is_workday 2026-04-06
# 找下一个工作日(从该日期之后)
python3 <skill_dir>/scripts/workday_query.py next_workday 2026-01-23
# 从某天起加N个工作日
python3 <skill_dir>/scripts/workday_query.py add_workdays 2026-03-01 10
# 统计两日期间工作日数
python3 <skill_dir>/scripts/workday_query.py count_workdays 2026-01-01 2026-03-31
# 计算申报截止日(遇非工作日顺延)
python3 <skill_dir>/scripts/workday_query.py deadline 2026-07-15
# 列出某月所有工作日
python3 <skill_dir>/scripts/workday_query.py month_workdays 2026-04
文件内容何时读取references/holidays-YYYY.md某年假期安排详情用户询问具体假期天数/调休细节references/tax-filing-calendar-YYYY.md某年完整申报截止日(官方数据)必须使用,用户询问纳税申报截止日references/tax-filing-calendar.md各税种申报周期通用规则无对应年份数据时参考
⚠️ 纳税申报的起始日和截止日,必须以官方数据为准(
tax-filing-calendar-YYYY.md), 严禁自行推算(包括deadline命令)。若该年份文件不存在,先通过 12366 接口获取后再作答。
数据官方来源法定节假日/调休国务院官方通知,通过 NateScarlet/holiday-cn 索引纳税申报日历国家税务总局: https://www.chinatax.gov.cn/
国务院通常在 前一年11月 发布次年假期通知,若该年通知尚未发布,需明确告知用户并给出预测(注明"待官方最终确认")。
纳税申报日历数据来源:12366纳税服务平台(北京市,ssjg=111000000),以北京数据为全国统一标准参考。
新年份申报日历获取规则(2027年及以后):在伟斌提供新数据源之前,统一通过以下接口获取:
https://12366.chinatax.gov.cn/bsfw/calendar/getCalendarListForMonthssjg=111000000&bssj=YYYY-MM,遍历 01–12 月bsjssj(截止日)和 bssz(申报事项),写入 references/tax-filing-calendar-YYYY.md 固化抓取后的数据固化到本地,后续查询无需重复抓取。