节假日查询
中国法定节假日 + 调休(年表内置)
假期总览
年度日历视图 · 一眼看遍 12 个月
加班费 · 法律依据《劳动法》§44
· 计算基数:月薪 ÷ 21.75(月平均工作日)÷ 8(小时) = 时薪。法定节假日加班不可调休补偿,必须支付 3 倍工资;休息日加班可调休或支付 2 倍。
· 注:本工具按全国统一基数算,部分地区(如京津沪深)规定加班费基数不得低于当地最低工资,请以当地标准为准。
拼假攻略 · 用最少年假凑最长假期
· 图例:■ 法定假日 · ■ 调休补班 · ■ 用年假 · ■ 周末。
· 计算逻辑:以法定假日为锚,往前往后吞掉最多 2 天年假 + 1 个周末,对比"裸放假"与"拼假后"的连休天数。建议提前向人事申请年假并避开同事冲突时段。
二十四节气 · 农事 / 养生
· 节气日期为天文公式估算,可能与权威历法相差 1 天,专业用途请以紫金山天文台为准。
· 春生夏长,秋收冬藏 — 节气是中国古代农事生产的天文坐标,至今指导耕作 / 饮食 / 药膳。
公历 ↔ 农历互转
任意日期反查 · 是否放假 / 是否调休
说明 · 数据来源 · 法律依据
· 法定假日数据:依据《国务院办公厅关于节假日安排的通知》(2024 / 2025 / 2026 已发布;2027 为预测,国务院通常于上一年 11 月发布)。
· 高速免费:仅春节、清明、劳动节、国庆 4 个法定假日免高速通行费 7 座以下小型客车通行费;元旦、端午、中秋按正常收费。
· 加班费:依据《劳动法》§44 ,平时延时 ×1.5 / 休息日 ×2 / 法定节假日 ×3。法定节假日加班禁止调休抵充。
· 民俗 / 国际节日:含农历传统(春节 / 元宵 / 清明 / 端午 / 七夕 / 中元 / 中秋 / 重阳 / 腊八 / 除夕)与公历常用(情人节 / 妇女节 / 母亲节 / 父亲节 / 教师节 / 圣诞等),不放假但具有文化 / 商业意义。
· 二十四节气:天文公式估算,精度 ±1 天,专业用途请查紫金山天文台。
· ICS 导出:标准 RFC 5545 全天事件,可导入 Apple 日历 / Google Calendar / Outlook / 钉钉 / 飞书等。
关于本工具
了解工具定位 · 使用场景 · 对比优势
使用场景
年假拼假规划
上班族每年只有 5-15 天年假,想用最少年假拼出最长旅行。本工具内置未来 5 年中国法定节假日 + 调休日期,输入年假天数后自动标记“请假 3 天连休 9 天”的最佳窗口,并显示该窗口内航班淡旺季提示,避免拼假后实际只休了调休日。
项目排期避坑
项目经理排开发周期时,常忽略调休日导致交付日算错。本工具输入起止日期后,自动剔除周末 + 法定假日 + 调休上班日,只计算实际工作日数;同时高亮“调休上班日”为红色,避免把调休日误当作休息日排入工期。
HR 考勤核对
HR 每月核对考勤时,需要区分法定假日(3 倍工资)、调休日(正常班)、周末加班(2 倍工资)。本工具按年份输出完整日历表,每日期旁标注“法定/调休/周末/工作日”标签,并自动统计当月法定假日天数、调休上班天数,直接用于工资计算底表。
学生假期作业
中小学生寒暑假作业常要求“记录法定节假日”,但调休导致节后连上 6 天课,家长和孩子容易记混。本工具按月份展示日历,用不同颜色区分“放假日”“调休上课日”“正常周末”,孩子看一眼就能填对作业表,家长也不用翻国务院通知。
店铺排班备货
餐饮店主需要提前 1 个月排员工班次、备食材量,但调休日客流规律与普通周末完全不同。本工具输入未来 3 个月后,自动输出每个调休日对应的“实际休息/上班”标签,并提示该调休日前后连续工作天数(如“五一调休:连上 6 天班,客流预计比普通周末低 30%”),辅助备货量决策。
对比矩阵本工具 vs 竞品 vs 传统方法
| 维度 | 本工具 (jiejiari.tl654.com) | API 接口 (如聚合数据) | 传统方法 (查政府公告) |
|---|---|---|---|
| 数据隐私 | 纯浏览器端计算,数据不上传服务器 | 需将查询年份发送至第三方 API 服务器 | 需自行搜索、下载或翻阅政府文件 |
| 处理速度 | 毫秒级返回结果(本地计算) | 1-3 秒(含网络请求与服务器处理) | 数分钟至数小时(需人工查找和核对) |
| 离线可用 | 完全离线(代码和年表内置) | 不可离线(依赖网络请求) | 部分离线(若已下载文件) |
| 数据更新 | 需手动更新工具版本(年表随政策更新) | API 提供方自动维护,通常实时更新 | 需自行关注国务院发布并手动记录 |
| 查询范围 | 内置年表覆盖 1949-2100 年 | 通常支持近 10-20 年(视 API 服务商而定) | 取决于能找到的官方文件年份 |
| 使用成本 | 免费,无调用次数限制 | 按调用次数收费(通常有免费额度) | 免费(仅需时间成本) |
| 操作门槛 | 打开页面即用,无需配置 | 需注册账号、申请 API Key、编写代码 | 需具备搜索和文件解读能力 |
使用指南
上手步骤 · 输入输出 · 避坑提示
输入输出示例8 个典型场景,覆盖常规、边界与易错
| 输入 | 输出 | 说明 |
|---|---|---|
| 2024-09-17 | 中秋节 | 法定节假日 | 典型场景:查询具体日期是否为节日 |
| 2025-01-28 | 除夕 | 法定节假日(调休) | 典型场景:除夕近年被纳入法定假日 |
| 2024-10-12 | 调休上班日 | 原为周六,因国庆调休上班 | 边界 case:调休后周末变工作日 |
| 2024-02-18 | 调休上班日 | 原为周日,因春节调休上班 | 边界 case:春节后首个周日调班 |
| 2025-05-01 | 劳动节 | 法定节假日(调休) | 典型场景:劳动节通常有调休连休 |
| 2024-12-25 | 非节假日 | 普通工作日 | 易错 case:圣诞节在中国非法定假日 |
| 2024-01-01 | 元旦 | 法定节假日 | 边界 case:年初第一天,固定假日 |
| 2024-04-05 | 清明节 | 法定节假日 | 典型场景:清明为固定日期节日 |
常见错误对照7 个常踩的坑 · 错误 → 修复
1. 把调休上班日当作非法日期
输入 2024-09-14(周六),工具返回「非节假日」,用户认为出错理解 2024-09-14 是中秋节调休上班日,工具只标记「法定节假日+调休日」,不标记「调休上班日」工具年表只存储放假日期(含调休放假)和调休上班日期,但查询接口默认只返回「是否法定节假日」;调休上班日不是节假日,返回 false 正确
2. 用农历日期查询公历节假日
输入「2024-08-15(农历八月十五)」,期望返回中秋节输入公历日期 2024-09-17(中秋节对应的公历日期)工具只接受公历日期(YYYY-MM-DD),不内置农历-公历转换;中秋节、春节等农历节日已按当年公历日期内置在年表中
3. 查询未来未公布的节假日
查询 2026-10-01,期望返回国庆节,但工具返回「未知」或空查询 2024-10-01(或国务院已公布年份内的日期)国务院一般每年 10-12 月公布次年放假安排;工具年表只包含已公布年份,未公布年份无法判断
4. 把「周末」当作节假日
输入 2024-11-23(普通周六),认为工具应该返回「是节假日」理解工具只返回「法定节假日+调休放假」,不包含普通周末中国法定节假日仅 11 天(元旦/春节/清明/劳动/端午/中秋/国庆),普通周末不是法定节假日
5. 用日期范围查询代替单日查询
输入「2024-10-01 到 2024-10-07」,期望返回整个国庆假期分别查询 2024-10-01、10-02、...、10-07 七天,或使用工具提供的「假期列表」功能工具核心接口是单日查询;若需批量查询,应使用工具提供的年度假期列表视图,而非在单日输入框里写范围
6. 忽略时区差异导致日期偏移
UTC 时间 2024-10-01 00:00:00(北京时间 08:00),用户以为查询的是 10-01确保输入日期基于北京时间(UTC+8),或明确使用工具所在时区工具无时区转换逻辑;若用户系统时区非 UTC+8,输入的日期字符串可能对应错误公历日
7. 把调休上班日当作「补班」错误理解
用户认为 2024-09-14(周六)是调休上班,应该标记为「工作日」工具返回「不是法定节假日」,但用户需自行知道当天是调休上班日工具只区分「法定节假日/调休放假」和「非节假日」,不提供「调休上班日」的独立标记;用户需结合国务院通知判断
工作原理
公式推导 · 流程图解 · 依据出处
核心公式
无统一数学公式,基于国务院发布的《全国年节及纪念日放假办法》年表查表判定
变量说明
年份— 查询的年份(如 2025)日期— 查询的具体日期(如 2025-01-28)放假办法版本— 当年适用的国务院放假办法
示例
查询 2025 年 1 月 28 日是否为法定节假日。工具内置 2025 年放假安排:春节假期为 1 月 28 日(除夕)至 2 月 4 日(初七),其中 1 月 28 日为法定节假日。输出:是,法定节假日(春节)。
适用范围
仅适用于中国内地(不含港澳台),依据国务院每年发布的《关于XX年部分节假日安排的通知》。不适用于企业自定义假期或调休规则。
原理图
开发者集成
3 种主流语言 · 复制即用
# 内置 2025 年法定节假日 + 调休数据
# 来源:国务院办公厅《关于 2025 年部分节假日安排的通知》
from datetime import date, timedelta
# 年表结构:{节日名: [(放假开始日期, 放假天数, 调休上班日期列表)]}
holidays_2025 = {
"元旦": [(date(2025, 1, 1), 1, [])],
"春节": [(date(2025, 1, 28), 7, [date(2025, 1, 26), date(2025, 2, 8)])],
"清明节": [(date(2025, 4, 4), 3, [date(2025, 3, 30)])],
"劳动节": [(date(2025, 5, 1), 5, [date(2025, 4, 27)])],
"端午节": [(date(2025, 5, 31), 3, [date(2025, 6, 1)])],
"中秋节+国庆节": [(date(2025, 10, 1), 8, [date(2025, 9, 28), date(2025, 10, 11)])],
}
def is_holiday_or_workday(d: date) -> str:
"""返回指定日期是'法定假日'、'调休上班'还是'普通日'"""
for name, periods in holidays_2025.items():
for start, days, workdays in periods:
if start <= d < start + timedelta(days=days):
return f"法定假日({name})"
if d in workdays:
return "调休上班"
return "普通日"
# 示例:2025-01-01(元旦)
print(is_holiday_or_workday(date(2025, 1, 1))) # 法定假日(元旦)
# 示例:2025-01-26(春节调休上班)
print(is_holiday_or_workday(date(2025, 1, 26))) # 调休上班
# 示例:2025-03-15(普通周末)
print(is_holiday_or_workday(date(2025, 3, 15))) # 普通日package main
import (
"fmt"
"time"
)
// 2025 年节假日年表(国务院通知)
type HolidayPeriod struct {
Start time.Time
Days int
Workdays []time.Time // 调休上班日期
}
var holidays2025 = map[string][]HolidayPeriod{
"元旦": {{time.Date(2025, 1, 1, 0, 0, 0, 0, time.UTC), 1, nil}},
"春节": {{time.Date(2025, 1, 28, 0, 0, 0, 0, time.UTC), 7, []time.Time{time.Date(2025, 1, 26, 0, 0, 0, 0, time.UTC), time.Date(2025, 2, 8, 0, 0, 0, 0, time.UTC)}}},
"清明节": {{time.Date(2025, 4, 4, 0, 0, 0, 0, time.UTC), 3, []time.Time{time.Date(2025, 3, 30, 0, 0, 0, 0, time.UTC)}}},
"劳动节": {{time.Date(2025, 5, 1, 0, 0, 0, 0, time.UTC), 5, []time.Time{time.Date(2025, 4, 27, 0, 0, 0, 0, time.UTC)}}},
"端午节": {{time.Date(2025, 5, 31, 0, 0, 0, 0, time.UTC), 3, []time.Time{time.Date(2025, 6, 1, 0, 0, 0, 0, time.UTC)}}},
"中秋节+国庆节": {{time.Date(2025, 10, 1, 0, 0, 0, 0, time.UTC), 8, []time.Time{time.Date(2025, 9, 28, 0, 0, 0, 0, time.UTC), time.Date(2025, 10, 11, 0, 0, 0, 0, time.UTC)}}},
}
func checkDay(d time.Time) string {
for name, periods := range holidays2025 {
for _, p := range periods {
end := p.Start.AddDate(0, 0, p.Days)
if (d.Equal(p.Start) || d.After(p.Start)) && d.Before(end) {
return fmt.Sprintf("法定假日(%s)", name)
}
for _, wd := range p.Workdays {
if d.Equal(wd) {
return "调休上班"
}
}
}
}
return "普通日"
}
func main() {
fmt.Println(checkDay(time.Date(2025, 1, 1, 0, 0, 0, 0, time.UTC))) // 法定假日(元旦)
fmt.Println(checkDay(time.Date(2025, 1, 26, 0, 0, 0, 0, time.UTC))) // 调休上班
fmt.Println(checkDay(time.Date(2025, 3, 15, 0, 0, 0, 0, time.UTC))) // 普通日
}// 2025 年节假日年表(国务院办公厅通知)
const holidays2025 = {
'元旦': [{ start: '2025-01-01', days: 1, workdays: [] }],
'春节': [{ start: '2025-01-28', days: 7, workdays: ['2025-01-26', '2025-02-08'] }],
'清明节': [{ start: '2025-04-04', days: 3, workdays: ['2025-03-30'] }],
'劳动节': [{ start: '2025-05-01', days: 5, workdays: ['2025-04-27'] }],
'端午节': [{ start: '2025-05-31', days: 3, workdays: ['2025-06-01'] }],
'中秋节+国庆节': [{ start: '2025-10-01', days: 8, workdays: ['2025-09-28', '2025-10-11'] }],
};
function checkDay(dateStr) {
const d = new Date(dateStr);
for (const [name, periods] of Object.entries(holidays2025)) {
for (const p of periods) {
const start = new Date(p.start);
const end = new Date(start);
end.setDate(end.getDate() + p.days);
if (d >= start && d < end) {
return `法定假日(${name})`;
}
if (p.workdays.includes(dateStr)) {
return '调休上班';
}
}
}
return '普通日';
}
console.log(checkDay('2025-01-01')); // 法定假日(元旦)
console.log(checkDay('2025-01-26')); // 调休上班
console.log(checkDay('2025-03-15')); // 普通日常见问题
7 个高频疑问