有人私信问我「工作日计算是几月几日」,我让他先把具体场景说清楚。他回了一长串,我看完了发现:他真正卡住的点,跟他以为的完全不是一回事。
把基础理清
工作日计算=自然日-周末-法定节假日+调休上班日。中国法定节假日11天:元旦1天、春节3天、清明1天、劳动节1天、端午1天、中秋1天、国庆3天。但实际放假通过调休拼成连休,所以要用当年的放假安排表。时区影响日期计算,跨时区场景统一用UTC存储显示时转本地。跨年跨月的计算最容易出错,用日期库能避免大部分坑。
开始正式操作
2026年放假安排:元旦1月1日、春节2月17-23日、清明4月4-6日、劳动节5月1-5日、端午6月19-21日、中秋10月1-3日(与国庆连休)、国庆10月1-8日。调休上班日要把对应周末算成工作日。农历转换要查数据表,没有简单公式,因为闰月大小月每年不同。工作日计算要查当年的放假安排表,不能简单乘5/7。
走个完整流程
先搞清算法。工作日计算是几月几日这类生活计算,本质是日期或时间的加减。难点不在算术,而在边界情况:闰年、闰月、节假日、农历公历转换,这些搞错结果就错。日期加减用专门的库或时间戳,手算容易漏闰年漏跨月。时间戳是绝对时间不受时区影响,转本地时间要加时区偏移。
具体怎么做
我习惯这么操作,分享给你:
- 第一步:算两个日期间的自然日数
- 第二步:减去周末(周六周日)
- 第三步:减去法定节假日(春节3天、国庆3天、元旦清明劳动端午中秋各1天)
- 第四步:加上调休上班日(把对应周末算回工作日)
- 第五步:查当年官方放假安排表核对
几个要注意的地方
下面这几条比正文还重要,别跳过:
- 法定节假日11天但实际休息更多,通过调休拼成连休
- 调休补班那天要算工作日,别光去掉周末忘了加回来
- 2026年春节2月17-23日、国庆10月1-8日,调休补班日要查公告
- 不同行业有不同作息,按实际工作制调整
「工作日计算是几月几日」不是终点,是入口。搞懂它,后面那一串相关问题你都能顺藤摸瓜。
跨年跨月的计算最容易出错,用日期库能避免大部分坑。农历和公历的对应每年都变,去年的数据今年不能直接用。日期相关的计算,"起始日"和"结束日"含不含当天要先约定清楚。时区影响日期计算,跨时区场景统一用UTC存储显示时转本地。
常见问题
【调休是什么意思?】调休是把周末和法定节假日重新组合,形成连休。比如国庆3天法定假,调休把前后周末调进来拼成7天连休,但某个周末要补班。计算工作日时补班那天要算工作日。
【工作日怎么计算?】自然日-周末-法定节假日+调休上班日。法定节假日11天但实际通过调休拼连休,所以要用当年放假安排表。2026年春节2月17-23日、国庆10月1-8日等。
【工作日计算是几月几日怎么算?】本质是日期时间加减,用日期库或时间戳算最准。难点是闰年闰月节假日农历等边界情况,用在线工具输入日期直接出结果最省事,不用记公式。
【中国法定节假日有几天?】11天:元旦1天、春节3天、清明1天、劳动节1天、端午1天、中秋1天、国庆3天。但实际放假通过调休拼成连休,总休息天数多于11天,调休补班会占用周末。