日期时间 本地计算 开箱即用 内置示例 不留痕迹

工作日计算器

两个模式:统计两个日期之间的总天数、常规工作日、周末与法定假日(支持录入调休上班日,贴合国内放假安排);从某天起往后数 N 个工作日,自动跳过周末与假日、计入补班,算交付日期、审批时限都适用。

算交付日期、审批时限、项目工期,要跳过的不只是周末——国内还有法定假日与调休补班:周六可能要上班,周三可能是假期。本工具内置 2024—2026 年放假安排,两个模式:统计两日期间的总天数、常规工作日与实际工作日(计入调休);从某天起数 N 个工作日得目标日期。

与日期计算器的分工:那边的工作日数只排除周末(通用口径),本工具按国内放假安排逐日判断(休 / 班角标来自官方通知),算国内工期、政府审批时限用这边才准。数工作日时起始当天算不算第 1 天,两种口径都支持,按你的制度选。

使用步骤

  1. 选模式:区间统计(两日期之间)或推算(数 N 个工作日)。
  2. 区间模式看总天数、常规工作日与计入调休的实际工作日。
  3. 推算模式填 N 与起始日,看目标日期;可调「起始日算第 1 天」。
  4. 数据覆盖 2024~2026;更晚年份待官方安排发布后更新。

计算原理与示例

期间工作日怎么算

期间工作日:填开始/结束日期,统计从开始日(含)到结束日(不含)的区间;有法定假日就把日期填进「法定假日」,周末补班填进「调休上班日」。

加 N 个工作日怎么算

加工作日:填开始日期和 N,从次日起数第 N 个工作日落在哪天。如周四 2026-01-08 加 1 个工作日得周五 2026-01-09;周一加 5 个得下周一。

调休与法定假日规则

调休上班日优先级最高:周末但录了调休,按工作日计;工作日但录了假日,按假日计。

计算依据:工作日按「周一至周五」统计,默认叠加内置的国务院办公厅放假安排(2024—2026 年法定假日与调休补班,可用开关关闭);自定义补充日期以用户录入为准。

代码示例

JavaScript 逐日判断:周末 + 休班表

// HOLIDAYS 同节假日日历工具:{"2026-10-01":"休","2026-10-10":"班"}
function isWorkday(iso, HOLIDAYS) {
  if (HOLIDAYS[iso]) return HOLIDAYS[iso] === "班";   // 官方安排优先
  const d = new Date(iso + "T00:00:00").getDay();
  return d !== 0 && d !== 6;
}

function addWorkdays(startIso, n, HOLIDAYS) {
  const d = new Date(startIso + "T00:00:00");
  while (n > 0) {
    d.setDate(d.getDate() + 1);
    if (isWorkday(d.toISOString().slice(0, 10), HOLIDAYS)) n--;
  }
  return d;
}

Python numpy 工作日(不含中国调休)

import numpy as np

np.busday_count("2026-09-01", "2026-10-01")   # 只排周末
np.busday_offset("2026-09-15", 10)             # 数 10 个工作日

# 中国调休需自定义 holidays 参数:
np.busday_offset("2026-09-15", 10,
                 holidays=["2026-10-01", "2026-10-02"])

常见问题

统计区间包含结束日当天吗?

不包含。2026-01-05(周一)到 2026-01-12(下周一)统计的是 7 天里的 5 个工作日,结束日当天不计。这与「截止日前完成」的常见口径一致。

加工作日从哪天开始数?

从开始日期的次日起数。周四加 1 个工作日是周五;周五加 1 个跳过周末是下周一;周一开始数第 5 个工作日是下周一(中间隔一个周末)。

怎么处理国内的调休?

默认不用管:2024—2026 年的法定假日与调休补班已内置,开关打开时自动生效。只有公司自行安排的特殊假期,才需要填进下方「自定义补充休息日 / 补充上班日」。

加工作日支持小数或负数吗?

不支持。N 必须是正整数(至少 1);要往前推算请用「期间工作日」模式倒推。

工作日和自然日有什么区别?

自然日按日历天数计算,包含周末和节假日;工作日只算周一至周五,并跳过法定假日、计入调休补班日。请假、工期、审批时限通常按工作日算,贷款利息、房租租期通常按自然日算。

怎么算两个日期之间的工作日天数?

先求两个日期之间的自然日总数,再扣除落在周末的天数,然后减掉区间内的法定节假日、加回调休上班日。内置数据已覆盖 2024—2026 年,选好日期即可,无需手动录入。

节假日数据需要自己录入吗?

不需要,2024—2026 年的安排已内置(数据来源为国务院办公厅逐年通知)。超出覆盖年份,或公司自定的假期,才需要手动填入自定义补充栏;数据更新会随节假日日历工具一并维护。

延伸阅读

来自本站原创文章,讲清这个工具背后的算法与口径。