生活健康 本地计算 开箱即用 内置示例 不留痕迹

倒班日历计算器

以某一天为锚定日,按「上 N 休 M」或自定义班次序列(白、中、夜、休任意组合)逐日推算未来班休安排,附逐日班休表与循环天数统计,倒班人群排生活、约人办事前先看一眼。

倒班的人算日子和坐办公室的不一样:朋友约周末,你得先看那天是白班还是夜班;想休个长假,得数循环里哪一段连休。班型再复杂也能归成一个循环——上四休二是 6 天一轮,四班三倒是白中夜休 4 天一轮,两班倒 12 天在岗 24 天轮换。

把「今天是什么班」这个锚点告诉工具,未来 30 天的班休逐日排开,星期几、循环内第几天一目了然。自定义序列支持白、中、夜、休任意组合,含「休」的班次自动计为休息,30 天里休几天、循环多长,统计卡直接给出。

使用步骤

  1. 选排班模式:上 N 休 M,或自定义班次序列。
  2. 填循环参数:连上连休天数,或按顺序填班次(顿号、逗号、斜杠分隔均可)。
  3. 定锚定日期——那天你上的班就是序列第一项。
  4. 看逐日班休表与休息天数统计,提前安排约会、办事与休假。

计算原理与示例

锚定日怎么选

锚定日是整个推算的零点:循环从这天起算,锚定日当天对应序列第 1 项。今天上白班就选今天并把序列第一项设为白班;今天休息、明天出勤的班型,锚定日应选明天。锚点选错整表错位,换一天重算即可,不用改序列。

自定义序列怎么填

自定义序列按你填的顺序逐日轮转,逗号、顿号、斜杠都能分隔,比如「白,白,中,中,夜,夜,休,休」就是两班两倒的常见写法。班次名称随意(班组、AB 班都能用),只有含「休」字的班次会被计为休息日;其余全部按出勤统计。

跨月与替班怎么处理

推算是理想循环口径:不含替班、加班、调班与法定节假日调休。遇到临时换班,把换班后的那天重新当锚定日算一遍即可恢复准确;节假日当天班次是否三薪、是否调休,属于薪酬问题,本工具不做处理。

为什么只推 92 天

预览上限 92 天(约一个季度)是刻意设的:倒班规则常随生产计划季度性调整,超过一个季度的推算参考价值有限。需要更远的日期,先按当前规则推算,到月再以新排班表校准锚点。

代码示例

JavaScript 上 N 休 M:取模定位每一天

function shiftOf(i, onDays, offDays) {
  const cycle = onDays + offDays;
  return i % cycle < onDays ? "班" : "休";
}

// 做 2 休 2:锚定日为第 0 天 → 0、1 班;2、3 休;4、5 班…
// 任意日期是班是休:先算与锚定日相差几天,再取模

JavaScript 自定义序列:序列本身就是周期

const pattern = ["白", "白", "中", "中", "夜", "夜", "休", "休"];
const label = pattern[i % pattern.length];
const rest = label.indexOf("休") >= 0;   // 含「休」的班次计为休息

// 锚定日对应序列第 1 项(不是第一个「班」)
// 白白中中夜夜休休 = 8 天一循环,月休 8 天左右

常见问题

上四休二怎么填?

选「上 N 休 M」,N 填 4、M 填 2,锚定日选一个上白班的日子。循环 6 天,每月大约上 20 天休 10 天;如果你们的四休二日夜班对倒,用自定义序列填「白,白,夜,夜,休,休」更准确。

四班三倒是什么循环?

标准四班三倒是白、中、夜、休各一天,4 天一轮,用自定义序列填「白,中,夜,休」。有些单位做「做六休二」或「白白中中夜夜休休」的变体,按本单位实际序列填入即可,工具按你给的顺序推算。

上 12 休 24 这种超长循环支持吗?

支持。上 N 休 M 模式循环上限 60 天(12+24=36 天在支持范围内);预览天数建议至少设为两个循环(72 天以上),否则表里看不到完整的休班段。自定义序列模式的循环上限是 30 项。

为什么我的班休表和车间排班对不上?

先检查锚定日:车间表的第 1 天和你的锚定日是不是同一种班。再检查序列方向:有些单位序列是「休中夜白」不是「白中夜休」,方向反了整表错位。逐日核对前 4 天,对上了后面就全对。

能算节假日吗?调休怎么处理?

本工具只推算固定循环,不叠加法定节假日与调休——倒班单位的节假日安排(三薪、值班、调班)通常由单位单独通知。需要看节假日时,把推算结果和站内的节假日日历对照着看。

忘了今天是什么班怎么定锚定日?

找最近一个「确定班次」的日子即可,不一定是今天:上周末上了夜班,就以那天为锚定日并把序列第一项设为夜班。锚定日只要求那天的班次明确、越近越准;锚点错位整表平移,重新选一天再算即可。

能保存或分享排班结果吗?

本页不生成分享链接或文件,逐日班休表可以全选复制到备忘录或家庭群里;参数会保留在浏览器本地(最近记录),下次打开自动恢复上次的循环设置,换设备或清理浏览器数据后需要重填。

延伸阅读

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