# 2022 年终奖个税计算方法，看看你被多收割了多少

## 感谢

B 站真的是学习的地方，我看了老师的视频之后，终于搞懂怎么计算个税了，上链接，和我同样不懂的小伙伴可以去学习下，省的怕会计给你算错。

## 年终奖个税计算

``````def nzjgs(n):
"""
:type n: float 年终奖总额
:rtype: float 年终奖交税额
"""
tmp = n/12
if tmp <= 3000:
return n * 0.03
if 3000 < tmp <= 12000:
return n * 0.1 - 210
if 12000 < tmp <= 25000:
return n * 0.2 - 1410
if 25000 < tmp <= 35000:
return n * 0.25 - 2660
if 35000 < tmp <= 55000:
return n * 0.3 - 4410
if 55000 < tmp <= 80000:
return n * 0.35 - 7160
return n * 0.45 - 15160

``````print(nzjgs(40000))
3790.0

## 月薪个税计算

``````def yxgs(n, s, shebao, qitakouchu, zhuanxiangfujiakouchu):
"""
:type n: float 月份
:type s: float 月薪
:type shebao: float 每月社保缴费
:type qitakouchu: float 每月其他扣除费用
:type zhuanxiangfujiakouchu: float 每月专项附加扣除
:rtype: tuple (截止到本月之前的每月交税列表，本月交税额, 截止到本月的交税总额)
"""
koushui = []
for i in range(1, n+1):
total_s = s * i
total_shebao = shebao * i
total_zhuanxiangkouchu = qitakouchu * i
total_5000 = 5000 * i
total_zhuanxiangfujiakouchu = zhuanxiangfujiakouchu * i
total_suodee = total_s - total_shebao - total_zhuanxiangkouchu - total_5000 - total_zhuanxiangfujiakouchu
if total_suodee <= 36000:
koushui.append(total_suodee * 0.03 - sum(koushui))
if 36000 < total_suodee <= 144000:
koushui.append(total_suodee * 0.1 - 2520 - sum(koushui))
if 144000<total_suodee<=300000:
koushui.append(total_suodee * 0.2 - 16920 - sum(koushui))
if 300000<total_suodee<=420000:
koushui.append(total_suodee * 0.25 - 31920 - sum(koushui))
if 420000<total_suodee<=660000:
koushui.append(total_suodee * 0.3 - 52920 - sum(koushui))
if 660000<total_suodee<=960000:
koushui.append(total_suodee * 0.35 - 85920 - sum(koushui))
if 960000<total_suodee:
koushui.append(total_suodee * 0.45 - 181920 - sum(koushui))
return koushui, koushui[-1], sum(koushui)

``````print(yxgs(12, 20000, 2025, 300, 0))
([380.25, 380.25, 522.0, 1267.5, 1267.5, 1267.5, 1267.5, 1267.5, 1267.5, 1267.5, 1267.5, 2077.5], 2077.5, 13500.0)

## 2022 年新版年终奖个税计算

``````def xbnzjgs(nzj, n, shebao, qitakouchu, zhuanxiangfujiakouchu):
"""
:type nzj: float 年终奖
:type n: float 月薪
:type shebao: float 每月社保缴费
:type qitakouchu: float 每月其他扣除费用
:type zhuanxiangfujiakouchu: float 每月专项附加扣除
:rtype: 第 12 个月的交税额
"""
p = yxgs(11, n, shebao, qitakouchu, zhuanxiangfujiakouchu)
total_suodee = nzj + n * 12 - (shebao + qitakouchu + zhuanxiangfujiakouchu + 5000) * 12
if total_suodee <= 36000:
if 36000 < total_suodee <= 144000:
return total_suodee * 0.1 - 2520 - p[2]
if 144000<total_suodee<=300000:
return total_suodee * 0.2 - 16920 - p[2]
if 300000<total_suodee<=420000:
return total_suodee * 0.25 - 31920 - p[2]
if 420000<total_suodee<=660000:
return total_suodee * 0.3 - 52920 - p[2]
if 660000<total_suodee<=960000:
return total_suodee * 0.35 - 85920 - p[2]
if 960000<total_suodee:
return total_suodee * 0.45 - 181920 - p[2]

``````print(xbnzjgs(40000, 20000, 2025, 300, 0))
10077.5

## 尾记

• 写这些函数纯属娱乐，上面的函数实现比较粗糙，请多见谅。
• 前两个函数是对的，最后的 2022 年终奖计算方法是我自己推到的算法，不一定对，欢迎各位指正。