一段计算北京2008年最新税后收入的python代码

#!/bin/env python

# author: zhouhh

# email: ablozhou@gmail.com

# date: 2008.6.17

# money.py

def money(all_salary,has_welfare,has_housing_fund):

money = all_salary

bj_average_salary=3322;#in 2008 using average salary of year 2007

min = bj_average_salary*0.6

max = bj_average_salary*3

welfare_fund = all_salary

if all_salary > max:

welfare_fund = max

if all_salary < min:

welfare_fund = min

print("total money=%.2f"%all_salary)

medical_fund=welfare_fund*0.02+3

retire_fund=welfare_fund*0.08

unemploy_fund =welfare_fund*0.005

if not has_welfare:

welfare_fund = 0

medical_fund=0

retire_fund=0

unemploy_fund =0

else:

print("medical fund = %d*0.02+3=%.2f"%(welfare_fund,medical_fund) )

print("retirement fund = %d*0.08 =%.2f"%(welfare_fund,retire_fund) )

print("unemployment fund  = %d*0.005=%.2f"%(welfare_fund,unemploy_fund ))

housing_fund=welfare_fund*0.12

if  not has_housing_fund:

housing_fund = 0

else:

print("housing fund = %d*0.12=%.2f"%(welfare_fund,housing_fund))

all_welfare_fund=medical_fund+retire_fund+unemploy_fund +housing_fund

print("all welfare fund=%.2f"% all_welfare_fund)

money -=all_welfare_fund

before_tax = money

print("before tax money =%.2f"%before_tax )

if before_tax < 2000 :

print(" you have no tax,you own money=%.2f"%before_tax)

return before_tax

#after 2008.3.1 tax

l1=500*0.05 #2000-2500, %5

l2=1500*0.10 #2500-4000 %10              +=25

l3=3000*0.15 #4000-7000 %0.15           +=175

l4=15000*0.20 #7000-22000 %20         += 625

l5=20000*0.25 #22000-42000 %25      +=3625

l6=20000*0.30 #42000-62000 %30      +=8625

l7=20000*0.35 #62000-82000 %35      +=14625

l8=20000*0.40 #82000-102000 %40    +=21625

l9=0                                          #    +=29625

money -=2000

tax=0;

if money<500:

l1=money*0.05

tax=l1

print("you are in level 1,tax =%.2f, you own money=%.2f"%(tax,(before_tax-tax)))

return before_tax-tax

money -= 500

if money<1500:

l2=money*0.10

tax=l1+l2

print("you are in level 2,tax =%.2f, you own money=%.2f"%(tax,(before_tax-tax)))

return before_tax-tax

money -= 1500

if money<3000:

l3=money*0.15

tax=l1+l2+l3

print("you are in level 3,tax =%.2f, you own money=%.2f"%(tax,(before_tax-tax)))

return before_tax-tax

money -= 3000

if money<15000:

l4=money*0.20

tax=l1+l2+l3+l4

print("you are in level 4,tax =%.2f, you own money=%.2f"%(tax,(before_tax-tax)))

return before_tax-tax

money -= 15000

if money<20000:

l5=money*0.25

tax=l1+l2+l3+l4+l5

print("you are in level 5,tax =%.2f, you own money=%.2f"%(tax,(before_tax-tax)))

return before_tax-tax

money -= 20000

if money<20000:

l6=money*0.30

tax=l1+l2+l3+l4+l5+l6

print("you are in level 6,tax =%.2f, you own money=%.2f"%(tax,(before_tax-tax)))

return before_tax-tax

money -= 20000

if money<20000:

l7=money*0.35

tax=l1+l2+l3+l4+l5+l6+l7

print("you are in level 7,tax =%.2f, you own money=%.2f"%(tax,(before_tax-tax)))

return before_tax-tax

money -= 20000

if money<20000:

l8=money*0.40

tax=l1+l2+l3+l4+l5+l6+l7+l8

print("you are in level 8,tax =%.2f, you own money=%.2f"%(tax,(before_tax-tax)))

return before_tax-tax

money -= 20000

l9=money*0.45

tax=l1+l2+l3+l4+l5+l6+l7+l8+l9

print("you are in level 9,tax =%.2f, you own money=%.2f"%(tax,(before_tax-tax)))

return before_tax-tax


一、什么是五险一金？
“五险一金”讲的是五种保险,包括养老保险(retirement fund)、医疗保险(medical fund)、

“五险一金”的缴费比例：

1.基本养老保险

2.医疗保险

(1) 基本医疗保险：

(2) 大额医疗费用互助资金：

3.失业保险

4.工伤保险

5.住房公积金

6.个人所得税

1不超过500元的部分，税率5%，速算扣除数为0； 2超过500元至2000元的部分，税率10%，速算扣除数为25 3超过2000元至5000元的部分，税率15 %，速算扣除数为175 4超过5000元至20000元的部分，税率20 %，速算扣除数为625 5超过20000元至40000元的部分，税率25%，速算扣除数为3625

6超过40000元至60000元的部分，税率30%，速算扣除数为8625 7超过60000元至80000元的部分，税率35%，速算扣除数为14625 8超过80000元至100000元的部分，税率40%，速算扣除数为21625 9超过100000元的部分，税率45%，速算扣除数为29625 个人每月收入减去三险一金，减去起征点（2000），剩下的部分套用上面的公式。

• 广告
• 抄袭
• 版权
• 政治
• 色情
• 无意义
• 其他

120