工作日天计算器

填开始日期和结束日期,本页按周一至周五统计两者之间的工作日天数,首尾当天都算进去。所有计算都在浏览器里完成,输入不上传服务器,手机也能直接打开用。

计算口径:工作日 = 周一至周五;首尾两天都计入;法定节假日不扣减(如国庆、春节仍算作当天性质的星期)。演示值 2024-01-01 到 2024-01-31 = 23 个工作日。

使用方法

本工具把「两个日期」直接换成一组天数,只要三步:

  1. 「开始日期」填区间起点,演示值 2024-01-01。
  2. 「结束日期」填区间终点,演示值 2024-01-31,必须晚于或等于开始日期(早于会自动交换)。
  3. 点「计算工作日」,或在任一输入框按 Enter。三张卡片分别给工作日、总跨度、周末天数;下方对照表默认 12 行,「加载更多」补到 16 行,可导出 CSV、JSON 或复制 TSV。
  4. 想还原演示值按「载入示例」:2024-01-01、2024-01-31。

工作日天计算器能解决什么

它把「排期要几个工作日」变成一步读数,适合三类场景:

  • 项目排期:合同写「30 个工作日内交付」,用本页反推日历截止日;演示 2024-01-01 到 2024-01-31 是 23 个工作日,跨月时一眼看清。
  • 考勤与工时:统计某段区间应出勤天数,演示月内 31 天里有 23 个工作日、8 个周末,直接用于排班与工资核算。
  • 物流与 SLA:快递「5 个工作日送达」从下单日算起落在哪天,本页帮你数清不含周末的天数,避免对客承诺踩坑。

本页不做的事:不扣减法定节假日(春节、国庆等仍按星期计),需要节假日排除请另行标注或用带假期的日历;不处理时区与夏令时(按本地日历日计算);不判断「调休上班的周末」。

原理和变量

① 用了哪个具体函数:核心是逐日遍历,对每一天取 getDay(),当返回 0(周日)或 6(周六)时跳过,其余累加;起始与结束都闭区间计入,公式为「工作日 = 总天数 − 周末天数」。

② 关键参数为什么这样取:用「周一至周五」而非「自然日」是因为工作日的定义就是排除周末;首尾都计入是因为合同与考勤通常含起止当天。用本地日期对象遍历,避免时区偏移把某天算到前一天。

③ 遵循哪个标准:星期判定遵循 ISO 周定义(周一为一周之首);闭区间计数与常见 HR 系统一致。本页不引入任何地区的节假日表,所以结果偏「理论工作日」。

④ 输入怎么变成输出:先算总跨度 31 天;逐日判定星期,去掉 4 个周六、4 个周日共 8 个周末;工作日 = 31 − 8 = 23。三张卡片(23 / 31 / 8)在页面默认结果里都能对上。

⑤ 边界与阈值:两个日期都必填且须能解析为合法日期;结束早于开始时自动交换并提示「已自动交换首尾」;同日开始=结束算 1 天(若是周中)或 0 天(若是周末)。日期范围极大(如跨百年)也能算,只是遍历稍慢。

⑥ 常见误用的正确解释:把「总天数 31」当「工作日 31」会高估交付能力;以为节假日自动扣除其实不会,国庆期间仍按星期计;跨月时只数当月会漏算,本页按完整区间统计才准。

完整示例(数值仅作演示)

保持演示值:开始 2024-01-01,结束 2024-01-31。

  • 总跨度:31 天(含首尾)。
  • 周末:4 个周六 + 4 个周日 = 8 天。
  • 工作日:31 − 8 = 23 天(工作日天计算器给出的核心结果)。
  • 换一组:2024-02-01 到 2024-02-29,总 29 天、周末 8 天、工作日 21 天(2024 是闰年 2 月 29 天)。

这几组数字与页面默认卡片、对照表第 2 行完全一致,可三处核对。

输入范围与对照表

本页的对照表列出常见日期区间的工作日统计(节假日不扣减):

常见区间的工作日统计(周一至周五,含首尾,节假日不扣减)
开始日期结束日期跨度天数工作日天数
2024-01-012024-01-0775
2024-01-012024-01-313123
2024-02-012024-02-292921
2024-01-012024-03-319165
2024-01-012024-06-30182130
2024-01-012024-12-31366262
2025-01-012025-01-313123
2025-02-012025-02-282820
2024-03-012024-03-313121
2024-06-012024-06-303020
2023-01-012023-12-31365260
2024-12-012024-12-313122

对照表能看出「闰年 2 月多一天、工作日也多一天」:2024-02 有 21 个工作日,而平年 2025-02 只有 20 个,差的就是 2 月 29 日那天(周四,算工作日)。

结果边界和舍入

取整与口径:天数都是整数,不存在小数;首尾闭区间计入,所以「当天到当天」若是周中得 1、周末得 0。

什么时候会提示:日期为空或格式非法时提示「请填写合法的开始与结束日期」;结束早于开始会自动交换并提示,不会报错。

节假日与调休:本页不扣减法定节假日,也不把「调休补班的周末」算成工作日;若你的场景必须排除国庆、春节,请在结果上手动减去对应假日天数,或改用带假期表的日历。

结果性质:这是基于星期规则的理论工作日数,适合排期与估算;涉及工资、法务的精确出勤请以公司考勤系统为准。

常见问题

法定节假日会扣掉吗?

不会。本页只按周一至周五判定,国庆、春节等法定假日仍按当天星期计入。需要排除请在结果上手动减,或换用带节假日表的工具。

首尾两天都算吗?

都算。采用闭区间,开始日和结束日只要不是周末都计入工作日;同日开始结束且是周中,结果为 1 天。

结束日期比开始早会怎样?

会自动交换两者并提示「已自动交换首尾」,结果按正确顺序统计,不会得到负数。

为什么和考勤系统差一两天?

多半是节假日或调休没扣除。本页是纯星期口径,而公司考勤常含假期表与补班安排,口径不同就会差。

闰年影响结果吗?

影响。闰年 2 月多一天(29 日),若该天是周中就会多一个工作日;对照表里 2024-02 比 2025-02 多 1 个工作日正是这个原因。

能算跨多年吗?

能。日期范围没有上限,跨十年百年也能逐日统计,只是区间越大遍历越久,但人类常用区间都能秒出。

时区会有偏差吗?

按本地日历日处理,不涉及时分秒与跨时区换算,同一天不会被算到前一天。若需 UTC 口径请注意本地设置的差异。

我的输入会被保存或上传吗?

不会。全部计算在浏览器内完成,刷新即清空;可在 Network 面板复查,点「计算工作日」时没有任何请求发出。

相关工具