调休日加班核对
周一是调休来的工作日,行政说按平时1.5倍算,但员工查了公司制度发现调休日应算周末加班按2倍。两边各执一词,HR拿出《加班费计算》工具,选日期类型为“调休日”,系统自动按周末2倍系数出结果,金额差了两千多。当场对照规则条款,确认了正确算法,补发差额。
加班到深夜,掏出手机算加班费,发现平时1.5倍、周末2倍、法定3倍,但自己月薪折成时薪到底是多少,总得翻出考勤表再对着计算器按半天。这个工具把月薪和出勤天数填进去,直接按三种倍率算出每小时的加班费,结果精确到分。所有计算都在浏览器里完成,数据不上传服务器——工资单截图也不用担心外泄。
周一是调休来的工作日,行政说按平时1.5倍算,但员工查了公司制度发现调休日应算周末加班按2倍。两边各执一词,HR拿出《加班费计算》工具,选日期类型为“调休日”,系统自动按周末2倍系数出结果,金额差了两千多。当场对照规则条款,确认了正确算法,补发差额。
10月1-3日法定假值班,公司只按平时工资的3倍算日薪,但员工认为应该按“日工资×300%”而非“基本工资×300%”。财务用工具输入当月应发工资总额和实际出勤天数,自动算出日工资基数,再乘以3倍系数,发现公司少算了绩效部分。输出结果打印出来,作为协商依据。
项目连续赶工两个月,每周六都加班,但公司按月结算时把周末加班按1.5倍算。员工用工具逐月输入周末加班小时数,选择“周末2倍”系数,算出应得加班费与实发对比,发现每月少发约800元。工具支持累计计算,两个月差额一目了然,直接提交财务复核。
面试时HR说“月薪1.5万,含加班费”,但没写具体加班怎么算。候选人用工具输入预计平时加班20小时/月、周末加班8小时/月,按1.5倍和2倍系数算出应得加班费约3000元,发现如果公司按“含加班费”口径,实际月薪可能只有1.2万。带着计算结果去谈offer,要求明确加班费单列。
离职交接时,HR给了一份加班费结算单,只算了近三个月的。员工用工具把入职以来所有加班记录按平时、周末、法定三类分别输入,累计算出应得总额。发现HR漏算了半年前的周末加班和两次法定假值班,差额超过5000元。工具输出明细清单,作为劳动仲裁证据。
| 维度 | 本工具 | 竞品 A(Excel 模板) | 传统方法(手工计算) |
|---|---|---|---|
| 计算逻辑 | 内置 1.5x/2x/3x 标准倍率,按日期类型自动匹配 | 需用户自行设置公式或条件格式,易漏设法定假日 | 依赖记忆或翻阅法规,常算错倍率 |
| 法定假日识别 | 自动识别当年法定节假日列表 | 需手动维护假日数据,每年更新 | 需自行查询国务院放假通知 |
| 输入方式 | 直接填入加班起止时间,自动算小时数 | 需手动拆分为小时数再套公式 | 手算时长再乘倍率,步骤多 |
| 结果展示 | 实时显示加班费、加班时长、倍率明细 | 需自行设计结果区域,无默认明细 | 仅最终数字,无过程可查 |
| 设备依赖 | 浏览器打开即用,无需安装 | 需安装 Excel 或兼容软件 | 纸笔 / 计算器,无需电子设备 |
| 更新维护 | 节假日数据每年自动更新,无需用户操作 | 用户需每年手动更新假日表和公式 | 无更新成本,但每次需重新查法规 |
| 输入 | 输出 | 说明 |
|---|---|---|
| 月薪 8000 元,本月加班 10 小时(平时 3 小时,周末 5 小时,法定 2 小时) | 平时加班费:8000 ÷ 21.75 ÷ 8 × 3 × 1.5 = 206.90 元 周末加班费:8000 ÷ 21.75 ÷ 8 × 5 × 2 = 459.77 元 法定加班费:8000 ÷ 21.75 ÷ 8 × 2 × 3 = 275.86 元 合计:942.53 元 | 常规:三种加班类型同时出现,验证分段计算逻辑和日工资基数(21.75 天)是否正确应用 |
| 月薪 5000 元,本月加班 0 小时 | 加班费合计:0 元 | 边界:零加班场景,验证工具对空输入或零值的处理是否返回明确结果而非报错 |
| 月薪 10000 元,本月加班 1 小时(平时 1 小时,周末 0,法定 0) | 平时加班费:10000 ÷ 21.75 ÷ 8 × 1 × 1.5 = 86.21 元 合计:86.21 元 | 边界:最小有效输入(1 小时),验证单位精度和四舍五入规则(保留两位小数) |
| 月薪 30000 元,本月加班 200 小时(平时 100 小时,周末 80 小时,法定 20 小时) | 平时加班费:30000 ÷ 21.75 ÷ 8 × 100 × 1.5 = 25862.07 元 周末加班费:30000 ÷ 21.75 ÷ 8 × 80 × 2 = 27586.21 元 法定加班费:30000 ÷ 21.75 ÷ 8 × 20 × 3 = 10344.83 元 合计:63793.11 元 | 边界:月加班 200 小时(远超《劳动法》月限 36 小时),验证工具是否不设上限或给出提示,暴露合规性提醒缺失 |
| 月薪 0 元,本月加班 10 小时(平时 10 小时) | 平时加班费:0 ÷ 21.75 ÷ 8 × 10 × 1.5 = 0 元 合计:0 元 | 易错:月薪为 0 时计算无意义,验证工具是否给出合理提示(如“月薪不能为 0”)而非输出 0 元误导用户 |
| 月薪 8000 元,本月加班 8 小时(平时 0,周末 8 小时,法定 0) | 周末加班费:8000 ÷ 21.75 ÷ 8 × 8 × 2 = 735.63 元 合计:735.63 元 | 常规:仅周末加班,验证 2 倍系数是否独立计算,且与平时加班费不混淆 |
| 月薪 8000 元,本月加班 8 小时(平时 0,周末 0,法定 8 小时) | 法定加班费:8000 ÷ 21.75 ÷ 8 × 8 × 3 = 1103.45 元 合计:1103.45 元 | 常规:仅法定节假日加班,验证 3 倍系数是否独立计算,且与周末加班费区分 |
| 月薪 8000 元,本月加班 0.5 小时(平时 0.5 小时) | 平时加班费:8000 ÷ 21.75 ÷ 8 × 0.5 × 1.5 = 34.48 元 合计:34.48 元 | 边界:非整数小时(0.5 小时),验证工具是否支持小数输入,以及精度处理是否合理 |
1.误将综合工时制加班按标准工时计算
综合工时制员工当月总工时 200 小时,标准工时 174 小时,直接按 200-174=26 小时算 1.5 倍加班费综合工时制员工超出 174 小时的部分,统一按 1.5 倍计算,不区分平时/周末;法定节假日上班无论是否超总工时,一律按 3 倍计算综合工时制下,超出标准工时的部分不分平时/周末,均按 1.5 倍;法定节假日加班则单独按 3 倍,与总工时无关。依据《工资支付暂行规定》第十三条。
2.法定节假日加班费与调休混淆
国庆节加班 3 天,公司安排调休 3 天,就不发加班费了法定节假日(如国庆 1-3 日)加班,公司必须支付 3 倍工资,调休不能替代;休息日(如国庆 4-7 日)加班,可安排调休或支付 2 倍工资《劳动法》第四十四条明确规定:法定节假日加班不得以调休代替,必须支付 300% 工资;只有休息日加班才可调休。
3.月计薪天数用错(30 vs 21.75)
月工资 6000 元,日工资 = 6000 ÷ 30 = 200 元,加班费基数用 200 元/天月工资 6000 元,日工资 = 6000 ÷ 21.75 ≈ 275.86 元,加班费基数用 275.86 元/天《劳动和社会保障部关于职工全年月平均工作时间和工资折算问题的通知》规定:月计薪天数为 21.75 天(365 天扣除 104 个休息日再除以 12 个月),非 30 天。
4.加班时长不足 1 小时直接舍去
加班 2 小时 40 分钟,只算 2 小时加班费加班 2 小时 40 分钟,按 2.67 小时计算加班费(40 分钟 ÷ 60 ≈ 0.67 小时)加班时长应按实际分钟数折算为小时,不能直接舍去不足 1 小时的部分。多数地区司法实践支持按分钟折算,除非公司制度明确规定以 0.5 小时为最小单位。
5.把值班当作加班计算
周末在公司值班 8 小时,按 2 倍加班费要求值班(非生产性工作,如接听电话、看门)通常按公司内部规定支付值班补贴,不适用加班费倍数加班指在正常工作时间外继续从事本职工作;值班是临时性、非生产性值守。司法实践中,值班一般不按《劳动法》第四十四条计算加班费。
6.月工资包含绩效/奖金时未剔除
月工资 8000 元(含 2000 元绩效奖金),直接按 8000 元算日工资基数计算加班费基数时,应剔除不固定的绩效奖金、季度奖等,以基本工资或固定部分(如 6000 元)为基数多地司法实践(如北京、上海)认为:加班费基数应为劳动者正常工作时间的工资,不包含非常规性绩效、奖金、津贴。具体以当地规定为准。
7.休息日加班直接按 2 倍计算,忽略调休优先
周末加班 8 小时,直接要求公司支付 2 倍工资 16 小时先确认公司是否安排调休;若安排调休,则不支付加班费;若不安排调休,则支付 2 倍工资《劳动法》第四十四条:休息日安排工作又不能补休的,支付 200% 工资。即调休优先于支付加班费,这是合法合规的。
加班费 = 月薪 ÷ 21.75 ÷ 8 × 加班小时数 × 倍数
月薪劳动合同约定的月工资标准21.75月计薪天数(法定均值)8标准日工作时长(小时)加班小时数实际加班时长,单位小时倍数平时1.5、周末2、法定3月薪8000元,周末加班4小时:时薪=8000÷21.75÷8≈45.98元;加班费=45.98×4×2=367.84元。
5 种主流语言实现,复制即用:
from datetime import datetime, timedelta
def calc_overtime(hourly_wage: float, start: str, end: str, day_type: str) -> float:
"""
day_type: 'workday' | 'weekend' | 'legal'
返回加班费(元)
"""
fmt = '%H:%M'
s = datetime.strptime(start, fmt)
e = datetime.strptime(end, fmt)
hours = (e - s).seconds / 3600
if hours <= 0:
return 0.0
rates = {'workday': 1.5, 'weekend': 2.0, 'legal': 3.0}
return round(hourly_wage * hours * rates[day_type], 2)
# 示例:时薪 50,工作日加班 18:00→20:30
print(calc_overtime(50, '18:00', '20:30', 'workday')) # 187.50function calcOvertime(hourlyWage, start, end, dayType) {
const [sh, sm] = start.split(':').map(Number);
const [eh, em] = end.split(':').map(Number);
const hours = (eh + em / 60) - (sh + sm / 60);
if (hours <= 0) return 0;
const rates = { workday: 1.5, weekend: 2.0, legal: 3.0 };
return Math.round(hourlyWage * hours * rates[dayType] * 100) / 100;
}
// 示例:时薪 80,周末加班 09:00→12:00
console.log(calcOvertime(80, '09:00', '12:00', 'weekend')); // 240package main
import (
"fmt"
"math"
"strings"
"strconv"
)
func calcOvertime(hourlyWage float64, start, end, dayType string) float64 {
toHours := func(t string) float64 {
parts := strings.Split(t, ":")
h, _ := strconv.ParseFloat(parts[0], 64)
m, _ := strconv.ParseFloat(parts[1], 64)
return h + m/60
}
hours := toHours(end) - toHours(start)
if hours <= 0 {
return 0
}
rates := map[string]float64{"workday": 1.5, "weekend": 2.0, "legal": 3.0}
result := hourlyWage * hours * rates[dayType]
return math.Round(result*100) / 100
}
func main() {
// 示例:时薪 100,法定假日加班 08:00→17:00
fmt.Println(calcOvertime(100, "08:00", "17:00", "legal")) // 2700
}#!/usr/bin/env bash
# 依赖 bc,通常预装
calc_overtime() {
local wage=$1 start=$2 end=$3 day_type=$4
local sh=${start%%:*} sm=${start##*:}
local eh=${end%%:*} em=${end##*:}
local hours=$(echo "scale=4; ($eh + $em/60) - ($sh + $sm/60)" | bc)
if (( $(echo "$hours <= 0" | bc -l) )); then echo 0; return; fi
local rate
case $day_type in
workday) rate=1.5;;
weekend) rate=2.0;;
legal) rate=3.0;;
esac
echo "scale=2; $wage * $hours * $rate" | bc
}
# 示例:时薪 60,工作日加班 19:00→21:30
calc_overtime 60 "19:00" "21:30" "workday" # 225.00fn calc_overtime(hourly_wage: f64, start: &str, end: &str, day_type: &str) -> f64 {
let to_hours = |t: &str| -> f64 {
let parts: Vec<&str> = t.split(':').collect();
let h: f64 = parts[0].parse().unwrap();
let m: f64 = parts[1].parse().unwrap();
h + m / 60.0
};
let hours = to_hours(end) - to_hours(start);
if hours <= 0.0 { return 0.0; }
let rate = match day_type {
"workday" => 1.5,
"weekend" => 2.0,
"legal" => 3.0,
_ => 0.0,
};
((hourly_wage * hours * rate) * 100.0).round() / 100.0
}
fn main() {
// 示例:时薪 120,周末加班 14:00→18:30
println!("{}", calc_overtime(120.0, "14:00", "18:30", "weekend")); // 1080.00
}一样。根据《劳动法》第四十四条,工作日延长工作时间的支付不低于工资150%的报酬;休息日工作又不能补休的支付200%;法定休假日工作的支付300%。本工具就是按这个标准计算的。如果你公司内部有不同倍率(比如平时1.2倍),工具暂不支持自定义倍率,只能按法定标准算,结果可作为参考基准。
是的。本工具按国家规定的月计薪天数21.75天计算日薪(月工资 ÷ 21.75),再除以8得到时薪。这是大多数正规企业的计算口径。如果你们公司用30天或当月实际工作日计算,结果会略有差异,建议先确认公司的日薪计算方式。
可能因为你的月工资基数较低,或者加班发生在工作日(1.5倍)。举例:月薪3000元,时薪约17.24元,工作日加班3小时 = 17.24 × 1.5 × 3 ≈ 77.6元。如果觉得金额偏低,可以检查输入的是否为月基本工资(不含绩效、补贴),或者加班是否发生在周末(2倍)或法定假日(3倍),倍率不同结果差异明显。
可以。法定节假日(如国庆1-3日、春节初一至初三)按3倍计算,调休的休息日(如国庆4-7日)按2倍计算。你只需在工具里分别输入不同日期的加班时长,选择对应的加班类型(法定假日选3倍,调休日选2倍),工具会自动算出各自的结果。建议把不同日期分开计算再累加。
本工具提供的是基于法定标准的参考值,不具备法律效力。如果公司不认可,你可以:1)对照《劳动法》第四十四条和公司规章制度核实计算口径;2)保留考勤记录、工资条等证据;3)向当地劳动监察部门投诉或申请劳动仲裁。工具结果可作为个人核算参考,帮助判断公司给出的加班费是否合理。
日薪 = 月工资 ÷ 21.75(月计薪天数),时薪 = 日薪 ÷ 8(标准工时)。这是根据《关于职工全年月平均工作时间和工资折算问题的通知》(劳社部发〔2008〕3号)规定的。如果你公司采用其他计薪天数(如20.83天或30天),时薪会不同,建议先确认内部口径。工具结果区会显示计算出的日薪和时薪,方便核对。
加班费按实际加班时间所在的工作日或休息日计算,不以跨天为界。例如:周一正常下班后加班到周二凌晨2点,全部算周一的加班(平时1.5倍)。如果是周六晚上加班到周日凌晨,则算周六的休息日加班(2倍)。工具按单次加班时长和加班类型计算,不处理跨天归属问题,建议按加班起始日对应的类型选择。
本工具完全在浏览器内运行(FE实现),所有计算都在本地完成,不会将输入的工资、加班时长等数据上传到任何服务器。即使断网也能正常使用。关闭页面后数据自动清除,不留缓存。如果对隐私敏感,可以放心使用。
隐私保证所有计算与处理均在你的浏览器本地完成,输入数据不会上传服务器,也不会保存或共享。