工龄计算 · 法定福利智能匹配
填入本单位入职日(截止日默认今天)即可估算工龄;如有多段工作经历,可点下方"加一段"补全—— 累计工龄按所有段相加(参照《劳动合同法》§14 / §47 司法实践对"累计"的认定)。
入职 + 离职→工龄/累计假期
填入本单位入职日(截止日默认今天)即可估算工龄;如有多段工作经历,可点下方"加一段"补全—— 累计工龄按所有段相加(参照《劳动合同法》§14 / §47 司法实践对"累计"的认定)。
以下参数仅影响"金额估算 / 退休判定 / 工龄工资模拟",不影响工龄本身。
| 累计工龄 | 法定年休假 | 说明 |
|---|---|---|
| 满 0 年但不满 1 年 | 0 天 | 不享年假;可享带薪病假 |
| 满 1 年不满 10 年 | 5 天 | 含国有 / 私营 / 个体工龄累计 |
| 满 10 年不满 20 年 | 10 天 | 跳到"中坚"档 |
| 满 20 年及以上 | 15 天 | 顶格 |
| 实际工作年限 | 本单位 < 5 年 | 本单位 5-10 年 | 本单位 10-15 年 | 本单位 15-20 年 | 本单位 ≥ 20 年 |
|---|---|---|---|---|---|
| ≤ 10 年 | 3 月 | 6 月 | 6 月 | 6 月 | 6 月 |
| > 10 年 | 6 月 | 9 月 | 12 月 | 18 月 | 24 月 |
《劳动合同法》§47:经济补偿按 本单位工作年限 计——每满 1 年 1 月工资;6 个月以上不满 1 年按 1 年算; 不满 6 个月按 半个月。月工资 > 当地社平 3 倍时按 3 倍计、最高 12 年(封顶条款)。
连续工龄越长、病假工资发放比例越高;下方"你在这"标签自动定位你所在档位。 各地实施细则略异(如上海保留"在病假期间企业按 60-100% 计发"),具体以本地为准。
企业职工领取基本养老金需 累计缴费满 15 年(《社会保险法》§16);机关事业单位另有男 25 年 / 女 20 年工龄要求。 2025 年起延迟退休渐进实施,下方按现行规则推算并提示。
工龄工资非国家强制,多见于国企 / 大型私企;典型标准为入职满 1 整年起、每多 1 年加 30-100 元 / 月。 部分企业封顶(如 10 年),下方按线性模式估算。
"经济补偿按劳动者在本单位工作的年限,每满一年支付一个月工资的标准向劳动者支付。六个月以上不满一年的,按一年计算;不满六个月的,向劳动者支付半个月工资的经济补偿。"
"用人单位违反本法规定解除或者终止劳动合同的,应当依照本法第四十七条规定的经济补偿标准的二倍向劳动者支付赔偿金。"
"职工累计工作已满 1 年不满 10 年的,年休假 5 天;已满 10 年不满 20 年的,年休假 10 天;已满 20 年的,年休假 15 天。"
"用人单位经职工同意不安排年休假或者安排休假天数少于应休天数的,应当按日工资收入的 300% 支付未休年假工资报酬(其中含正常工资 100%)。"
"医疗期 3-24 个月,根据 实际参加工作年限 和 在本单位工作年限 确定。"(双因素表,见上文)
"参加基本养老保险的个人,达到法定退休年龄时累计缴费满 15 年的,按月领取基本养老金。"
了解工具定位 · 使用场景 · 对比优势
HR 在录用新员工时,需根据其累计工龄核定当年可休年假天数。输入历任入职与离职日期,工具自动累加总工龄,并对照《职工带薪年休假条例》给出对应年假天数(5/10/15 天),避免人工加总出错或遗漏某段工作经历。
临近退休的职工想确认自己是否满足最低缴费年限或连续工龄要求。输入所有工作经历起止时间,工具算出累计工龄,并与当地社保局退休政策(如男满 60 岁且工龄≥15 年)比对,提前发现工龄不足的缺口,以便补缴或延退。
员工被公司辞退后,需计算经济补偿金(N 个月工资)的工龄基数。输入该公司的入职与离职日期,工具精确到天算出在本单位的工作年限,直接对应《劳动合同法》第 47 条“每满一年支付一个月工资”的补偿标准,避免因工龄计算争议导致仲裁失败。
自由职业者或断缴职工想补缴社保,需先确认自己累计工龄是否达到最低缴费年限(通常 15 年)。输入所有工作经历,工具显示当前工龄,并提示距 15 年还差多少个月,方便决定补缴金额与年限。
刚毕业的学生拿到多个 offer,需比较不同公司给的工龄认定政策(如试用期是否计入)。输入毕业日期和拟入职日期,工具模拟未来 3 年、5 年的工龄增长,帮助判断哪家公司的工龄积累更快,影响后续年假与晋升资格。
| 维度 | 本工具 | 竞品 A (Excel) | 传统方法 (手动计算) |
|---|---|---|---|
| 数据隐私 | 纯浏览器计算,数据不上传服务器 | 文件存储在本地电脑,但需自行管理 | 数据完全线下,依赖纸质档案或人工记忆 |
| 处理速度 | 输入即出,1秒内 | 需输入公式或手动设置,耗时30秒-5分钟 | 人工查阅日历、计算天数,耗时10分钟-数小时 |
| 计算精度 | 自动计算精确到天的工龄,支持多种假期规则 | 公式设置正确则精确,但易因公式错误或手动输入出错 | 极易出错,如忘记闰年、入职离职日期算错等 |
| 使用门槛 | 打开网页即可使用,无需安装 | 需要掌握Excel函数(如DATEDIF)和表格操作 | 需要熟悉劳动法、日历计算规则,门槛较高 |
| 批量处理 | 单次只能处理一对日期 | 可批量计算上千条记录 | 批量处理极慢,几乎不可行 |
| 离线可用 | 首次加载后,断网仍可使用 | 完全离线,但需安装Office软件 | 完全离线,依赖纸笔 |
| 收费 | 免费 | 需购买Microsoft Office或使用免费版 | 免费,但耗费大量时间成本 |
上手步骤 · 输入输出 · 避坑提示
| 输入 | 输出 | 说明 |
|---|---|---|
| 入职日期:2020-01-01,离职日期:2024-12-31 | 工龄:5年0个月0天 累计年假:15天(按工龄5年计) | 典型常规场景:整年整月入职离职 |
| 入职日期:2018-03-15,离职日期:2024-07-20 | 工龄:6年4个月5天 累计年假:15天(按工龄6年计) | 典型常规场景:跨月跨日计算 |
| 入职日期:2024-01-01,离职日期:2024-01-01 | 工龄:0年0个月0天 累计年假:0天 | 边界case:当天入职当天离职 |
| 入职日期:1990-01-01,离职日期:2024-12-31 | 工龄:35年0个月0天 累计年假:15天(按工龄20年以上计) | 边界case:超长工龄(35年) |
| 入职日期:2024-02-29,离职日期:2025-02-28 | 工龄:1年0个月0天 累计年假:5天(按工龄1年计) | 边界case:闰年2月29日入职 |
| 入职日期:2023-06-15,离职日期:2024-06-14 | 工龄:0年11个月30天 累计年假:0天(工龄不足1年) | 易错case:差1天满1年,无年假 |
| 入职日期:2020-01-01,离职日期:2024-01-01 | 工龄:4年0个月0天 累计年假:10天(按工龄4年计) | 易错case:整4年,年假档位从5天升至10天 |
入职:2024-01-01,离职:2023-12-31入职:2023-01-01,离职:2024-06-15离职日期必须 ≥ 入职日期,否则时间差为负数,工具无法计算有效工龄。
入职:01/02/2023,离职:2024-03-15入职:2023-01-02,离职:2024-03-15工具按 ISO 8601(YYYY-MM-DD)解析;混用格式可能导致月份和日期被错误互换(如 01/02/2023 可能被当作 2 月 1 日)。
入职日期填试用期开始日(如 2023-03-01),但合同正式入职是 2023-04-01入职日期填劳动合同载明的正式入职日期(如 2023-04-01)工龄计算以劳动关系建立为准,试用期包含在劳动关系内,但若试用期与合同日期不同,应填合同日期。
2022-07-01 入职,2024-06-30 离职,认为工龄是 2 年整2022-07-01 → 2024-06-30 实际工龄为 1 年 11 个月 30 天(约 1.99 年)工龄按实际天数 / 月数累计,不是只取整年;零头月数影响年假、工龄工资等权益。
2024-05-31 最后一天上班,但离职日期填 2024-05-31离职日期填劳动合同解除日(如 2024-06-15,含年假折算)工龄截止到劳动关系正式解除日,不是最后出勤日;若离职后仍有年假折算工资,工龄应算到解除日。
工龄 = 实际工作天数 + 调休天数工龄 = 实际工作天数(含法定节假日、年假、病假等带薪假)调休是补休,不增加劳动关系存续时间;工龄只计算日历天数,不因加班而延长。
入职:2023-1-1,离职:2024-6-15入职:2023-01-01,离职:2024-06-15部分解析器对单数字段(如 1-1)可能误判为月-日格式;统一补零可避免歧义。
2023-06-01 开始实习,2024-01-01 正式入职,工龄从 2023-06-01 算起工龄从正式签订劳动合同的 2024-01-01 算起实习通常不建立劳动关系(无社保),不计入法定工龄;只有正式入职后的时间才有效。
公式推导 · 流程图解 · 依据出处
Y = (D - E) / 365.25
Y — 工龄(年)D — 离职日期(公历日期)E — 入职日期(公历日期)入职日期 2020-03-01,离职日期 2025-03-01。则 D - E = 1826 天(含闰年 2024 年 2 月 29 日)。Y = 1826 / 365.25 ≈ 5.00 年。若按自然年计算,工龄为 5 年整。
适用于中国大陆劳动合同法下连续工龄计算,基于公历日期差除以平均年天数 365.25(含闰年)。不适用于非连续工龄(如多次入职)或特殊行业(如教师寒暑假不计入工龄)。数据来源:《国务院关于职工探亲待遇的规定》《劳动法》相关条款。
3 种主流语言 · 复制即用
from datetime import date, timedelta
# 计算工龄(年、月、日)和累计年假天数
# 假设入职 2020-03-15,离职 2025-07-20
start = date(2020, 3, 15)
end = date(2025, 7, 20)
# 工龄计算:年差减去未满整年的月份
if end.day < start.day:
# 未满整月,借位
end_month_adj = end.month - 1
if end_month_adj == 0:
end_month_adj = 12
end_year_adj = end.year - 1
else:
end_year_adj = end.year
months_diff = (end_year_adj - start.year) * 12 + (end_month_adj - start.month)
days_diff = (end - date(end_year_adj, end_month_adj, start.day)).days
else:
months_diff = (end.year - start.year) * 12 + (end.month - start.month)
days_diff = end.day - start.day
years = months_diff // 12
months = months_diff % 12
days = days_diff
print(f"工龄:{years}年{months}月{days}天") # 5年4月5天
# 累计年假(按中国劳动法:满1年5天,满10年10天,满20年15天)
if years < 1:
annual_leave = 0
elif years < 10:
annual_leave = 5
elif years < 20:
annual_leave = 10
else:
annual_leave = 15
print(f"累计年假:{annual_leave}天/年") # 5天/年package main
import (
"fmt"
"time"
)
func main() {
// 计算工龄和年假天数
start := time.Date(2020, 3, 15, 0, 0, 0, 0, time.UTC)
end := time.Date(2025, 7, 20, 0, 0, 0, 0, time.UTC)
// 计算整年、整月、剩余天数
years := end.Year() - start.Year()
months := int(end.Month()) - int(start.Month())
days := end.Day() - start.Day()
if days < 0 {
// 借位:上个月的天数
prevMonth := end.AddDate(0, -1, 0)
days += prevMonth.Day()
months--
}
if months < 0 {
months += 12
years--
}
fmt.Printf("工龄:%d年%d月%d天\n", years, months, days) // 5年4月5天
// 年假计算(中国劳动法标准)
var annualLeave int
switch {
case years < 1:
anualLeave = 0
case years < 10:
anualLeave = 5
case years < 20:
anualLeave = 10
default:
anualLeave = 15
}
fmt.Printf("累计年假:%d天/年\n", annualLeave) // 5天/年
}// 计算工龄和年假(纯前端,无需依赖)
function calcSeniority(startStr, endStr) {
const start = new Date(startStr);
const end = new Date(endStr);
let years = end.getFullYear() - start.getFullYear();
let months = end.getMonth() - start.getMonth();
let days = end.getDate() - start.getDate();
if (days < 0) {
// 借位上个月的天数
const prevMonth = new Date(end.getFullYear(), end.getMonth(), 0);
days += prevMonth.getDate();
months--;
}
if (months < 0) {
months += 12;
years--;
}
// 年假(中国劳动法)
let annualLeave;
if (years < 1) annualLeave = 0;
else if (years < 10) annualLeave = 5;
else if (years < 20) annualLeave = 10;
else annualLeave = 15;
return { years, months, days, annualLeave };
}
const result = calcSeniority('2020-03-15', '2025-07-20');
console.log(`工龄:${result.years}年${result.months}月${result.days}天`); // 5年4月5天
console.log(`累计年假:${result.annualLeave}天/年`); // 5天/年7 个高频疑问