跳到正文
DevTools / 工时计算器

工时计算器

手工累加工时表,正是算术错误演变成薪资纠纷的地方。本计算器逐行接受开始与结束时间,扣除不计薪的休息时间,处理跨越午夜的班次而不产生负数时长,按你所在薪资制度使用的档位取整,并以“时:分”、十进制小时和分钟三种形式给出总计,同时支持可配置的加班阈值与费率。整张工时表可导出为 CSV,直接交给薪资系统或用于客户结算。

完全在浏览器本地运行——不会上传任何内容。

标签开始结束休息(分钟)时长计薪十进制小时
8h 30m8h 00m8.000
9h 15m8h 30m8.500
8h 00m+1d7h 30m7.500
计薪总时长
24h 00m
十进制总小时
24.000h
总分钟数
1440min
在岗总时长
25h 45m
休息总时长
1h 45m
正常工时
24h 00m
加班工时
0h 00m
> 40h
跨夜班次
1
跨夜判定基于“结束早于开始”,因此单个班次不应超过 24 小时。

工作原理

时间算术不是十进制算术,把两者混起来是工时表错误的主要来源。一小时有六十分钟,因此 1 小时 45 分是 1.75 小时而不是 1.45 小时。薪资系统对此的需求并不统一:小时费率要乘以十进制小时数,而排班与合规规则通常以“时:分”表述。本计算器同时给出两者以及原始分钟总数,让结果可以不经手工换算就录入任何下游系统——而手工换算出错的频率高到值得被彻底消除。

跨夜班次是经典边界情形。22:00 开始、06:00 结束的班次在朴素相减下会得到负数。解决办法是检测到结束时间早于开始时间时加上二十四小时,从而得到正确的八小时。微妙之处在于这是一种启发式:它假定单个班次不超过二十四小时,这在任何真实用工场景中都成立,而在录入错误时不成立,因此计算器会提示这种情况而不是静默调整。

取整是制度与算术相遇的地方,也是最常见的两种做法出现分歧的地方。先对每次打卡取整再相减——多数考勤机的做法——与先求总时长再取整可能得出不同结果。把迟到 7 分钟向下取整到一刻钟对雇主有利,这种做法在部分司法管辖区受到规制:例如美国《公平劳动标准法》允许按最近五分钟或一刻钟取整,前提是长期下来不会系统性地偏向雇主。本计算器按行取整,并明确说明使用的是哪种方式。

加班是在总计上套用的阈值,而不是逐行套用,因为计薪周期通常是日或周,而行只是它的组成部分。计算器按可配置的阈值把总计拆成正常工时与加班工时,各自按对应费率计价,加班默认按基本费率的 1.5 倍,也就是通行惯例。某个具体阈值与倍数是否合法取决于司法管辖区和劳动合同,这也是为什么两者都是输入项而非固定假设。

常见应用场景

  • 汇总一周的工时表行并导出 CSV 交给薪资部门。
  • 计算某个班次起止时间之间的工时,并扣除不计薪的午休。
  • 计算跨越午夜的夜班工时,避免得到负数结果。
  • 把工时表换算成十进制小时,用于开票或计费系统。
  • 按四十小时阈值把一周工时分拆为正常工时与加班工时。
  • 核对一组记录工时是否与工资单上的总计一致。

最后更新: 2026-10-14

常见问题解答

如何计算两个时间之间的工时?

用结束时间减去开始时间,再扣除不计薪的休息时间。如果结束时间早于开始时间,说明班次跨越了午夜,结果需要加一天,这也是朴素的相减会给夜班报出负数的原因。计算器会处理这一点,把结果同时换算成“时:分”和十进制小时,并对任意多行求和——这很重要,因为工时表算术里真正有意思的错误都发生在行与行的边界上。

7 小时 45 分换算成十进制小时是多少?

7.75 小时。把分钟除以六十——45 除以 60 等于 0.75——再加上整小时数。常见错误是把 7 小时 45 分读成 7.45,两者相差十八分钟,约百分之四,而百分之四的薪资是一笔实实在在的钱。任何要乘以小时费率的场合都用十进制数字,任何给人看的场合都用“时:分”。

休息时间应该扣除吗?

只有在不计薪时才扣除,而这属于制度问题,在许多地方还是法律问题。短时休息通常计薪而不计入用餐休息,两者之间的界线因地区而异——美国常见的分界是二十分钟,欧盟《工作时间指令》对六小时后的休息又有不同规定。计算器把休息作为每行的显式输入而不假设默认值,让制度决策留在它该在的地方。

取整是怎么工作的?

每一行按你选择的档位——1、5、6、15 或 30 分钟——独立取整,然后对取整后的值求和。这与实体考勤机和多数薪资系统的行为一致,也是为什么“逐日取整后求和”与“先求和再取整”会得出不同的一周总数。在若干司法管辖区,取整方向是法律问题而非数学问题,因此计算器只按最近档位取整,把制度决策及其合规性留给你。

相关工具