日常生活

工作日计算器

设置
重置
分享结果
保存
嵌入
报告错误

分享计算器

将我们的免费计算器添加到您的网站

请输入有效的 URL。仅支持 HTTPS URLs。


将页面上计算器输入字段中的当前值用作嵌入计算器的默认值。


输入框边框聚焦颜色,开关框选中颜色,选择项悬停颜色等。


请同意使用条款。

预览

保存计算器

计算器设置

请输入在允许范围内的值。

请输入在允许范围内的值。

请输入在允许范围内的值。

请输入在允许范围内的值。

分享计算器

什么是工作日计算器?

工作日计算器告诉你两个日期之间有多少个工作日。与简单的天数统计不同,它会忽略你不工作的日子——默认是周末,即周六和周日——只统计典型办公室、学校或服务机构开门的日子。你还可以去除节假日和公司停业日,这样数字就反映了实际工作发生的日子。

这一点很重要,因为日历天数和工作日很少一致。日历上的两周是十四天,但其中通常只有十天是工作日。当你规划项目、给出交付窗口或计算通知期时,工作日的数字才是诚实的。

何时需要工作日

项目规划与截止日期

大多数日程以工作日表示:“五个工作日内完成”、“提前两周通知”、“十个工作日内结算”。把这些承诺换算成真实的日历日期——再换算回来——正是工作日统计的用途。

薪酬、休假与开票

工资、带薪休假和许多服务合同都以工作日计量。一旦时间段跨越周末和节假日,手动计算就容易出错,所以自动统计能让工时表和发票保持一致。

计算器如何工作?

你提供一个开始日期和一个结束日期。计算器随后遍历该范围内的每个日历日,只保留工作日:

  • 工作日是既非周末也非所列节假日的天数。
  • 总天数是该范围内日历日的简单计数。
  • **周末(非工作日)**是两者之差,即被跳过的天数。

三个选项决定统计方式:

  • 工作周 — 周一至周五(默认)将周六和周日视为非工作日;周一至周六将周六计为工作日,只跳过周日。
  • 包含结束日期 — 关闭时,范围是半开的,结束日期不被计入;开启时,结束日期也会被计入(如果它本身是工作日)。
  • 节假日 — 可选的日期列表(ISO 格式 YYYY-MM-DD,用逗号分隔)。落在范围内某个工作日的每个节假日会被扣除一次;落在周末的节假日没有影响,因为那天本来就是非工作日。

两个日期的顺序无关紧要——计算器始终使用绝对跨度——而缺失或无效的日期不会产生结果。

公式

设开始日期为 DsD_s,结束日期为 DeD_e。遍历该范围时,当某一天 dd 既不是周末也不是节假日时,它就是工作日。工作日统计是对范围内每一天的指示函数求和:

W=d[Ds,De)1 ⁣[weekday(d){Sat,Sun}    dH]W = \sum_{d \in [D_s,\, D_e)} \mathbb{1}\!\left[\,\text{weekday}(d) \notin \{\text{Sat}, \text{Sun}\} \;\wedge\; d \notin H\,\right]

其中 HH 是所列节假日的集合,1[]\mathbb{1}[\cdot] 在条件成立时为 11,否则为 00。当包含结束日期时,上界变为闭区间 [Ds,De][D_s,\, D_e]

等价地,工作日就是总天数减去你跳过的天数:

W=TEVW = T - E - V

其中 TT 是日历日的总数,EE 是范围内的周末天数,VV 是落在原本属于工作日的那天的节假日数量。

示例

  1. 示例 1 —— 两个日历周,不含结束日期。

    • 开始日期: 2024 年 1 月 1 日(周一)
    • 结束日期: 2024 年 1 月 15 日(周一)
    • 总天数: 1414周末天数: 44
    • 工作日: 1010
  2. 示例 2 —— 同一跨度,含结束日期。

    • 开始日期: 2024 年 1 月 1 日
    • 结束日期: 2024 年 1 月 15 日,计入
    • 工作日: 1111(加上最后一个周一)
  3. 示例 3 —— 整整一个月(经典的八月案例)。

    • 开始日期: 2022 年 8 月 1 日(周一)
    • 结束日期: 2022 年 8 月 31 日(周三),包含
    • 总天数: 3131周末天数: 88
    • 工作日: 318=2331 - 8 = 23
  4. 示例 4 —— 扣除一个节假日。

    • 开始日期: 2024 年 1 月 1 日,结束日期: 2024 年 1 月 15 日,包含
    • 节假日: 2024 年 1 月 1 日(元旦,周一)
    • 工作日: 111=1011 - 1 = 10

注意事项

  • 节假日因国家、地区和雇主而异,所以计算器不做任何假设——由你列出适用于你的那些。
  • 已经落在周末的节假日不会改变任何结果,因为那天从未被计为工作日。
  • 切换到六天工作周会把周六计为工作日;周日始终被视为非工作日。
  • 统计基于日历日期,与时区无关。

常见问题

周末会被算作工作日吗?

在默认的周一至周五模式下不会。如果你的一周是从周一到周六,切换工作周选项,周六就会被计入,而只跳过周日。

我应该包含结束日期吗?

这取决于你遵循的惯例。“从今天起五个工作日”通常计算今天之后的日子,因此结束日期被排除;将两端都视为工作日的日期范围则应包含它。该开关允许任一规则。

如何添加多个节假日?

将它们列为用逗号分隔的 ISO 日期,例如 2024-12-25, 2024-12-26。每一个落在范围内工作日的节假日都会从总数中扣除。

日期的顺序重要吗?

不重要。计算器始终使用两个日期之间的绝对跨度,所以交换开始和结束会得到相同的工作日数。

报告错误

此字段为必填项。