工时卡计算器
结果
毛工资
- 每周工时
- 40.00 小时
- 扣除休息前的工时
- 42.50 小时
- 扣除的休息合计
- 2.50 小时
- 出勤天数
- 5 天
工时卡计算器把一周的上下班时间变成小时数和钱:先算每一天的班有多长,再逐日扣掉不计薪的休息时间,最后用净工时乘时薪。默认的一周是周一到周五 09:00 到 17:30、每天 30 分钟休息,毛周工时 42.5 小时、休息 2.5 小时、净周工时 40 小时,时薪 25 就是 1000 元。面板上那五行就是这三步的顺序:毛工时、休息、净工时、上班天数、毛工资。这个顺序里有两件事值得先知道。休息是逐日扣的,不是一周扣一次,而且扣到那一天的长度为止——所以一个 09:00 到 09:20 的短班会得到 0.33 小时的休息和零计薪小时,而不是一个负数悄悄去抵掉另一天。净工时又是拿舍过的毛工时减去舍过的休息得来的,不是从秒数一路算到底,这是故意的:面板上 42.5 减 2.5 等于 40、40 乘 25 等于 1000,一行一行都能手算对账。下面那张表把同样的算法铺在一串周工时上,休息与时薪固定不动,这样「一周多上半小时值多少钱」不用填表就能直接读出来。
一周的工资随毛工时变化的对照
| 毛周工时 | 净周工时 | 毛工资 |
|---|---|---|
| 40 | 37.5 | 937.50 |
| 42.5 | 40 | 1000.00 |
| 45 | 42.5 | 1062.50 |
| 47.5 | 45 | 1125.00 |
| 50 | 47.5 | 1187.50 |
休息与费率都固定住,让只有小时数在动:每一行都假定默认那一周的每天 30 分钟休息、一周五天、时薪 25。所以中间那一列就是第一列减 2.5 小时,最后一列是中间那一列乘 25。随便挑一行都能复现:把周一到周五的班填成能得到第一列的那个长度,休息填 30 分钟,时薪填 25。这一张表有两处值得读。第一,按这个模式满勤的一周,比标准周多四小时、多 100 元——「钟上 40 小时」与「计薪 40 小时」的差别,这个差别在一个方向上是要花钱的,在另一个方向上却是看不见的。第二是两列的步长:前两列按 2.5 的步子走(那就是休息),最后一列按 62.50 的步子走;知道这一点之后,表中间的部分可以一边看工资条一边心算。
公式
毛工资 = 时薪 ×(毛工时 − 不计薪休息)
- monStart
- 这一天从几点开始,按 24 小时制的钟点填:早上九点是 09:00,晚上十点开始的夜班是 22:00。这个格子与时长类目里那个小时计算器用的是同一组,因为它就是同一个量,一周七天各有一组开始与结束。某一天的两个格子都空着,这一天就整个跳过——四天工作制就是这么填的,不必假装第五天上了零小时。
- monEnd
- 这一天几点结束。结束早于开始会按跨过午夜来读,不当成填错:22:00 到 06:00 是八小时夜班,不是负八小时。一天里只填了开始或只填了结束才是错——只有结束没有开始的班是个填了一半的日子,把它当零处理会把这一周算少。
- breakTime
- 不计薪的休息,一周只填一次,每个出勤的日子都按它扣。它不是逐日填的字段,这是个需要知道的简化:一周里三天短班两天长班,扣的是同一个数。它做到的是一件事——不越出当天,休息比班还长时会被裁到班的长度,所以二十分钟的班配三十分钟休息得到的是二十分钟休息、零计薪,而不是一个负数去吃别的日子的小时。
- hourlyRate
- 一小时计薪时间值多少钱。乘的是净工时,所以休息已经从它乘的那个数里扣掉了。它排在最后一个格子而不是第一个,是因为这一页按事情发生的顺序读:先钟点、再小时、最后是钱。周末或夜班该不该用同一个费率,这一页不问——如果答案是不该,那几天要单独再算一遍。
- grossHours
- 一周在钟上的全部时间,扣休息之前:每天班长的合计,跨午夜的班按它实际跨过的小时数算。这是打卡机会报出来的那个数,也是在相信下面任何一行之前该拿去与打卡记录对账的那个数。 (小时)
- breakHours
- 一周扣掉的休息:每天的休息乘实际出勤的天数,且不会超过它所扣的那一天的长度。它单独印一行而不是折进净工时里,是因为休息是工时卡上最容易被拿去和实际休了多久对质的一个数。 (小时)
- weeklyHours
- 净工时:毛工时扣掉休息之后剩下的部分,也是工资据以计算的那个数。它与时长类目里的小时计算器报的是同一个量,两页共用这个叫法就是因为这个,合同里写明了每周计薪小时数时,要拿去比的就是它。超出标准周的部分在这里不做特殊处理——那件事归同一类目下的加班费那一页。 (小时)
- daysWorked
- 一周里有几天是开始与结束都填了的。它比看上去重要,因为休息是逐日扣的:一周填成五个短班就扣五次休息,同样的小时数填成四个长班只扣四次。它同时也是最快的一个自查——确认表格是按你打算的方式填的。 (天)
- grossPay
- 净工时乘费率,面板上的主结果。毛的意思是税前、扣款前,所以它是拿去申报的那个数而不是到账的那个数:个人所得税、社保、公积金都要在它之后才扣,扣多少取决于你在哪里。加班费、小费、班次津贴与报销也都不在里面。
在一周结束的时候拿工时卡换一个数:拿工资条与实际出勤的小时数对账、给按小时计费的活报价、或者在答应调整班次之前先算清楚改了会差多少。休息本身有疑问时也该开这一页,因为扣项单独占一行——同一周先不填休息算一遍、再填上休息算一遍,那半小时一天在一年里值多少就出来了。它不决定这些小时该按什么价算。加班、周末加成、夜班津贴、法定节假日工资都是「哪些小时该乘哪个倍数」的规则,而这一页对整周只用一个费率。
算例
默认的一周:周一到周五 09:00 到 17:30,休息 30 分钟
- 每天:09:00 到 17:30 是 8.5 小时
- 毛工时:8.5 × 5 = 42.5 小时
- 休息:30 分钟 × 5 天 = 150 分钟 = 2.5 小时
- 净工时:42.5 − 2.5 = 40 小时
- 毛工资:40 × 25 = 1000.00 元
面板五行按产生顺序排列,顺序之所以要紧全在后两行:钱是拿 40 小时净工时算的,不是拿钟上的 42.5 小时算的。一天半小时就是一周 2.5 小时,按这个费率是 62.50 元;而这同样的每周 2.5 小时,一年是 130 小时、3250 元——通常是这个数让人回头去看自己的休息制度。
跨午夜的夜班:22:00 到 06:00
- 班长:22:00 到 06:00 是 8 小时,跨过午夜
- 休息:30 分钟 = 0.5 小时
- 净工时:8 − 0.5 = 7.5 小时
- 毛工资:7.5 × 25 = 187.50 元
结束时间早于开始时间,这个班仍然是八小时——结束早于开始按第二天早上读,不按填错处理。其余都不变:休息照扣,钱跟净工时走。这里只填了周一,所以只报一天;另外六天是空的而不是零,空的一天会被跳过。
休息比班还长:09:00 到 09:20,休息 30 分钟
- 班长:09:00 到 09:20 是 20 分钟,即 0.33 小时
- 休息:30 分钟比班还长,被裁到与班一样长的 20 分钟
- 净工时:0.33 − 0.33 = 0 小时
- 毛工资:0 × 25 = 0 元
休息被限制在它所扣的那一天的长度之内,正是这一条挡住了短班产生负工时、再去悄悄抵掉另一天的可能。休息那一行显示 0.33 而不是 0.50 也是同一个原因。二十分钟的班付零元,这是算法在正常工作而不是坏了——另一种做法等于为没有上过的小时付钱。
四天工作制:08:00 到 16:30,休息 45 分钟,时薪 30
- 每天:08:00 到 16:30 是 8.5 小时
- 毛工时:8.5 × 4 = 34 小时
- 休息:45 分钟 × 4 天 = 180 分钟 = 3 小时
- 净工时:34 − 3 = 31 小时
- 毛工资:31 × 30 = 930.00 元
与默认那一周是同样的 8.5 小时一天,只是上了四天而不是五天,后果落在休息那一行:四次休息而不是五次。这一周在钟上 34 小时,听起来接近全职;净工时 31 小时,不是。把周五那两个格子空着才是四天工作制——填成 08:00 与 08:00 会是一个长度为零、却仍算一天出勤、仍要扣一次休息的日子。
只上周末:周六周日 10:00 到 14:00,没有休息
- 每天:10:00 到 14:00 是 4 小时
- 毛工时:4 × 2 = 8 小时
- 休息:没有填,为 0
- 净工时:8 − 0 = 8 小时
- 毛工资:8 × 20 = 160.00 元
周末两个格子默认是空的,而不是自动填上周中的时间,所以周末班必须刻意填进去——这个默认是对的,一个把 09:00 到 17:30 预先塞进周六的表格,会让只上两天班的人被报成一周五天。休息填 0 是一个真实的取值,不是漏填:四小时班不休息很常见,这个字段接受它。
空的一周
- 没有任何一天同时填了开始与结束
- 毛工时:0 小时
- 一周的休息:30 分钟 × 出勤 0 天 = 0
- 净工时 0 小时,毛工资 0 元
什么都没填时页面显示的样子,也是休息为 0 而不是半小时的原因:每天的休息是乘实际出勤天数的,没有出勤的一周就一分不扣。这同时是抓反向错误的那一检查——如果一周报出来的休息次数比实际出勤天数少,说明其中有某一天漏了开始或结束。
局限
这一页把钟点与费率变成金额,到此为止。它给出的全部是毛额:个人所得税、社保、公积金、工会费以及其余任何扣款都在它之后才扣,扣多少取决于你在哪里、申报了什么,所以净工时那个数不等于到账的钱。它对整周只用一个费率,因此表达不了任何「不同小时不同价」的事:加成计算的加班、周末或夜班津贴、法定节假日费率、或者中途变过的费率,都属于「哪些小时该乘哪个倍数」的规则,归同一类目下的加班费那一页管。它也不知道任何不是按小时计价的东西——小费、提成、计件奖金、班次补贴、里程与报销都在这次乘法之外。有三件事属于它的工作方式,是该预期到而不是该当成故障报的。第一,休息一周只填一次并逐日出勤扣一次,所以长短不一的一周会按同一个数扣;真实的休息如果不一样,只能把一周拆成几段分别算,或者手工调整。第二,净工时是从舍到两位的毛工时与舍到两位的休息得来的,不是从底层的秒数一路算到底,这是有意的——面板上 42.5 减 2.5 等于 40 可以手算对账——代价是很多很短班次组成的一周,与全程按秒计算的算法可能差百分之一小时。第三,费率与休息只问一次:跨两份工作、两个费率或两种休息制度的一周,就是把这个页面走两遍,再在外面把结果加起来。最后,这里没有任何东西是一份法律记录。休息该不该计薪、班超过多长要额外休息、一周最多能上多少小时、跨午夜的班在具体合同下怎么算,都是劳动法与合同的问题,不是算术问题。
常见问题
- 怎么从工时卡算出工资?
- 先把每天的班长加起来得到毛工时,再按出勤的天数扣掉不计薪的休息,最后用净工时乘费率。周一到周五 09:00 到 17:30、每天扣 30 分钟休息,就是毛工时 42.5 小时、休息 2.5 小时、净工时 40 小时,时薪 25 是 1000 元。面板把这三步各占一行,结果可以手算核对。
- 跨午夜的班怎么填?
- 填开始时间,再填一个比开始更早的结束时间——22:00 到 06:00 就是八小时。结束早于开始按第二天早上读,不当成填错。休息的扣法与白班完全一样。
- 为什么短班配长休息会一分钱都不付?
- 因为休息被限制在它所扣的那一天的长度之内。二十分钟的班配三十分钟休息,得到的是二十分钟休息而不是三十分钟,净工时因此是零而不是负数。没有这一条限制的话,短班会产生负工时,把另一天的小时悄悄抵掉,那种错误要难发现得多。
- 没上班的那几天要不要填?
- 不用。两个格子都空的一天会被整个跳过,周末两格默认是空的正是这个原因。空着与把两个格子填成同一时刻是两回事:填成 08:00 和 08:00 会造出一个长度为零、却仍算一天出勤、仍要扣一次休息的日子。某一天只填两个时刻中的一个才是错,因为填了一半的日子会把这一周算少。
- 休息是按天扣还是一周扣一次?
- 按天扣:你填的那个休息数,每个有小时数的日子都扣一次,五天扣五次、四天扣四次。它一周只填一次,也就是假定每天休息一样长。如果各天不一样,就把一周拆成两次计算,或者手工调整净工时——面板把休息单独印一行,扣了什么一眼能看清。
- 这里算加班吗?
- 不算。整周的每一个小时都用同一个费率,所以超出标准周的部分按普通费率付,夜班与周末的津贴也完全没有体现。加成费率归同一类目下的加班费那一页。这一页给出的是「工时卡上的小时数按你填的费率值多少」的毛工资,而那正是加班费计算的起点。
参考资料
- 29 CFR 785.19 真正的用餐时间——说明用餐时间在什么条件下不计入工作时间,这是休息可以不计薪、因而本页可以扣除休息的法律依据 — 美国联邦法规电子法典(eCFR,美国国家档案与记录管理局)
- 29 CFR 778.101 非加班时间的上限——规定超过每周四十小时后必须按加成补偿,也正是本页有意不去碰的那条线:它对每一个小时都用同一个费率 — 美国联邦法规电子法典(eCFR,美国国家档案与记录管理局)
- Publication 15(2026)雇主税务指南——哪些款项在预扣税意义上算工资,毛工资在扣税之前就是拿这个定义去衡量的 — 美国国家税务局(IRS)
- 人社部发〔2025〕2号 人力资源社会保障部关于职工全年月平均工作时间和工资折算问题的通知——设定我国折算口径的通知,其中小时工资按月工资除以 21.75 再除以 8 计算,需要按这个规则把工时卡上的小时换算成工资的读者看这一条 — 中华人民共和国人力资源和社会保障部