跳到主要内容

免费工作日计算器

计算两个日期之间的工作日数,或从某日期增减工作日。可配置周末规则和节假日列表。

加载后可离线使用

周末(非工作)日期

0 个配置的假期

常见用途

  • 项目期限的工作日计算排除周末和假日的现实项目时间表。
  • 在营业日中跟踪SLA响应时间客户SLA通常指定'工作日'内的响应 - 准确计算5个工作日期限何时到期。
  • 计算休假 / PTO天数您实际会休息多少个工作日?计算休假请求的准确营业日数。
  • 政府申报截止日期税务申报、法院期限、监管申报 - 通常以工作日计算。
  • 运输交付估计计算以工作日报价的货物的预期交付日期。

工作原理

此工具完全在浏览器中运行,不使用外部库——所有日期运算都是使用原生 Date 对象的手写 JavaScript。它有两种模式:计算两个日期之间的工作日数,以及在给定日期上加减指定数量的工作日来推算将来(或过去)的日期。

  1. 1
    无 UTC 漂移的日期解析
    日期输入通过将 YYYY-MM-DD 字符串拆分为年、月、日并构造本地 Date 来解析——而不是 Date.parse()——因此无论你的时区偏移如何,结果始终是你输入的日历日期。
  2. 2
    节假日校验与查找
    每个节假日条目都先与严格的 YYYY-MM-DD 正则匹配,再通过重建 Date 并比较各部分进行交叉检查——因此 2026-02-31 这样不存在的日期会被拒绝并在界面中标出,而不会悄悄顺延到 3 月。有效条目存储在以本地日期字符串为键的 Set 中,以便在循环中以 O(1) 查找。
  3. 3
    可配置周末的逐日迭代
    在“计算日期之间”模式中,工具遍历范围内的每个日历日,对照你配置的周末日(七天中的任意组合)和节假日 Set 检查每一天,然后分别统计工作日、周末日和遇到的节假日。在“加工作日”模式中,它一次向前或向后移动一天,跳过非工作日,直到消耗完所需的工作日数。
  4. 4
    符合地区习惯的结果显示
    “加”模式中的最终日期通过 toLocaleDateString() 使用浏览器内置的 Intl 格式化,因此无需任何额外的库就能以用户本地的语言和日历习惯显示。

相关工具

常见问题