工作原理
时间算术不是十进制算术,把两者混起来是工时表错误的主要来源。一小时有六十分钟,因此 1 小时 45 分是 1.75 小时而不是 1.45 小时。薪资系统对此的需求并不统一:小时费率要乘以十进制小时数,而排班与合规规则通常以“时:分”表述。本计算器同时给出两者以及原始分钟总数,让结果可以不经手工换算就录入任何下游系统——而手工换算出错的频率高到值得被彻底消除。
跨夜班次是经典边界情形。22:00 开始、06:00 结束的班次在朴素相减下会得到负数。解决办法是检测到结束时间早于开始时间时加上二十四小时,从而得到正确的八小时。微妙之处在于这是一种启发式:它假定单个班次不超过二十四小时,这在任何真实用工场景中都成立,而在录入错误时不成立,因此计算器会提示这种情况而不是静默调整。
取整是制度与算术相遇的地方,也是最常见的两种做法出现分歧的地方。先对每次打卡取整再相减——多数考勤机的做法——与先求总时长再取整可能得出不同结果。把迟到 7 分钟向下取整到一刻钟对雇主有利,这种做法在部分司法管辖区受到规制:例如美国《公平劳动标准法》允许按最近五分钟或一刻钟取整,前提是长期下来不会系统性地偏向雇主。本计算器按行取整,并明确说明使用的是哪种方式。
加班是在总计上套用的阈值,而不是逐行套用,因为计薪周期通常是日或周,而行只是它的组成部分。计算器按可配置的阈值把总计拆成正常工时与加班工时,各自按对应费率计价,加班默认按基本费率的 1.5 倍,也就是通行惯例。某个具体阈值与倍数是否合法取决于司法管辖区和劳动合同,这也是为什么两者都是输入项而非固定假设。
常见应用场景
- 汇总一周的工时表行并导出 CSV 交给薪资部门。
- 计算某个班次起止时间之间的工时,并扣除不计薪的午休。
- 计算跨越午夜的夜班工时,避免得到负数结果。
- 把工时表换算成十进制小时,用于开票或计费系统。
- 按四十小时阈值把一周工时分拆为正常工时与加班工时。
- 核对一组记录工时是否与工资单上的总计一致。
最后更新: 2026-10-14