倒班日历计算器
以某一天为锚定日,按「上 N 休 M」或自定义班次序列(白、中、夜、休任意组合)逐日推算未来班休安排,附逐日班休表与循环天数统计,倒班人群排生活、约人办事前先看一眼。
倒班的人算日子和坐办公室的不一样:朋友约周末,你得先看那天是白班还是夜班;想休个长假,得数循环里哪一段连休。班型再复杂也能归成一个循环——上四休二是 6 天一轮,四班三倒是白中夜休 4 天一轮,两班倒 12 天在岗 24 天轮换。
把「今天是什么班」这个锚点告诉工具,未来 30 天的班休逐日排开,星期几、循环内第几天一目了然。自定义序列支持白、中、夜、休任意组合,含「休」的班次自动计为休息,30 天里休几天、循环多长,统计卡直接给出。
这个工具解决你的问题了吗?
提交后会把工具名、你的输入与当前结果发送到服务器;请勿填写身份证号、手机号等隐私信息。
AI 助手 会结合你当前的输入与结果回答
追问会再次把当前输入与结果发送到服务器;请勿填写隐私信息。
使用步骤
- 选排班模式:上 N 休 M,或自定义班次序列。
- 填循环参数:连上连休天数,或按顺序填班次(顿号、逗号、斜杠分隔均可)。
- 定锚定日期——那天你上的班就是序列第一项。
- 看逐日班休表与休息天数统计,提前安排约会、办事与休假。
计算原理与示例
锚定日怎么选
锚定日是整个推算的零点:循环从这天起算,锚定日当天对应序列第 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 天,对上了后面就全对。
能算节假日吗?调休怎么处理?
本工具只推算固定循环,不叠加法定节假日与调休——倒班单位的节假日安排(三薪、值班、调班)通常由单位单独通知。需要看节假日时,把推算结果和站内的节假日日历对照着看。
忘了今天是什么班怎么定锚定日?
找最近一个「确定班次」的日子即可,不一定是今天:上周末上了夜班,就以那天为锚定日并把序列第一项设为夜班。锚定日只要求那天的班次明确、越近越准;锚点错位整表平移,重新选一天再算即可。
能保存或分享排班结果吗?
本页不生成分享链接或文件,逐日班休表可以全选复制到备忘录或家庭群里;参数会保留在浏览器本地(最近记录),下次打开自动恢复上次的循环设置,换设备或清理浏览器数据后需要重填。
延伸阅读
来自本站原创文章,讲清这个工具背后的算法与口径。