跳到主内容
UniKit

工作日天数统计

计算两个日期之间有多少个工作日:支持自定义每周休息日、节假日列表,以及是否包含起止日,纯整数日期算法不受时区影响。

浏览器本地运行所有计算都在你的浏览器里完成,数据不会离开本机。

日期与工作日规则

默认把周六周日算作休息日;日期按纯整数日序计算,与本地时区、夏令时无关。开始日期默认取今天,且只在浏览器挂载后读取一次。

每周休息日

统计结果

工作日23 天
自然日31 天
休息日8 天
节假日(落在工作日上)0 天
命中的节假日—
起止顺序正常(开始日不晚于结束日)

这个工具能做什么

  • 排项目工期时算出真正可用的工作日:把周末规则和法定节假日填进去,得到的是能安排干活的天数。
  • 算请假或调休的成本:从某天到某天请假会占用几个工作日,一眼看清。
  • 估算合同、发票或服务周期:把「15 个工作日」换成具体的自然日期区间。
  • 核对倒休排班:如果公司是周五周六休息,把休息日改成周五周六即可按自己的制度统计。

示例

输入

开始 2024-01-01(周一),结束 2024-01-07(周日),休息日为周六周日,节假日填 2024-01-01

输出

工作日 4 天;自然日 7 天,休息日 2 天,节假日 1 天,命中的节假日 2024-01-01

2024-01-06 也是周六,如果把节假日写成 2024-01-06,它落在休息日上会被自动忽略,工作日仍是 4 天。

常见问题

周末和节假日怎么设置?

休息日按星期勾选,默认周六周日;节假日是一个日期列表,用逗号、空格或换行分隔。节假日只在落在工作日上时才扣除,落在休息日上的会被忽略,不会重复扣两次。

结果为什么和别的工具差一天?

差别通常来自「是否包含起止日」。本工具默认两端都包含,也就是 2024-01-01 到 2024-01-01 算 1 天。取消勾选「包含开始日」或「包含结束日」,就可以切换成半开区间的口径。

会不会受时区或夏令时影响?

不会。日期先被换算成整数「天数序号」再逐日判断,完全不用 Date 对象的本地时间,所以同一组输入在任何时区、任何夏令时规则下结果都一样。

能算多长的区间?

单次最多约 100 年(36600 天),超出会提示而不是卡住页面。日常排期远用不到这个上限,设置它是为了防止误输入年份导致长时间循环。

「今天」是怎么来的?

开始日期默认取今天,但只在浏览器挂载后读取一次;页面不会持续跟踪时间,也不会把日期发送到服务器。

关键词:workday counterbusiness daysworking days calculatorholidaysdate range工作日计算工作日天数自然日节假日排期

同类工具