个税及税后工资计算

每月个人所得税、税后薪资计算器:

def due_tax(due_income):
    '''
    本函数计算年度应缴个税
    :param due_income:本年累计应纳税所得额
    :return:本月应缴个税金额
    '''
    if 0<due_income<=36000:return due_income*0.03-0 #本年累计应纳税所得额*税率-速算扣除数
    if 36000<due_income<=144000:return due_income*0.10-2520
    if 144000<due_income<=300000:return due_income*0.20-16920
    if 300000<due_income<=420000:return due_income*0.25-31920
    if 420000<due_income<=660000:return due_income*0.30-52920
    if 660000<due_income<=960000:return due_income*0.35-85920
    if due_income>960000:return due_income*0.45-181920

def cal_income(monthly_income=15000,house=0.07,pension=0.08,medical=0.02,unemployment=6.6,monthly_deductable=5000):
    '''
    计算个税及税后薪资
    :param monthly_income: 每月税前薪资
    :param house: 公积金比例
    :param pension: 养老金比例
    :param medical: 医疗保险比例
    :param unemployment: 每月失业保险金(元)
    :param monthly_deductable: 每月扣除金额(如房租等)
    :return: 全年累计应缴个税、累计三险一金、累计净收入、每月应缴个税、每月税后收入
    '''
    print('每月税前工资:{:.2f}'.format(monthly_income))
    print('公积金比例:{:.2f}'.format(house))
    print('养老保险比例:{:.2f}'.format(pension))
    print('医疗保险比例:{:.2f}'.format(medical))
    print('失业保险金:{:.2f}'.format(unemployment))
    print('每月扣除金额:{:.2f}'.format(monthly_deductable))

    months=12 #本年工作月数
    sum_insurance=0 #本年累计已缴三险一金
    sum_deductable=0 #本年累计扣除
    sum_income=0 #本年累计收入
    sum_tax=0 #本年累计已缴个税
    sum_pure_income=0 #本年累计净收入(税后或到手工资)

    taxes=[]
    pure_incomes=[]

    for i in range(1,months+1):
        sum_income+=monthly_income
        sum_deductable+=monthly_deductable
        #本年度累计应缴税所得额=年度累计总收入-累计扣除-累计三险一金
        due_income=sum_income-sum_deductable-sum_insurance
        #本月个税=本年累计应缴个税-本年累计已缴个税
        tax=due_tax(due_income)-sum_tax
        taxes.append(tax)
        #本月三险一金
        insurance=monthly_income*(house+pension+medical)+unemployment
        #本月净收入=税前工资-本月三险一金-本月个税
        pure_income=monthly_income-insurance-tax
        pure_incomes.append(pure_income)

        #打印本月个税、净收入
        print('{}月份-本月应缴个税:{:.2f},税后收入:{:.2f}'.format(i,tax,pure_income))

        #更新累计已缴个税、已缴三险一金、净收入
        sum_tax+=tax
        sum_insurance+=insurance
        sum_pure_income+=pure_income
    plus_house=sum_pure_income+monthly_income*house*months
    print('全年累计应缴个税:{:.2f},全年应缴三险一金:{:.2f},全年净收入:{:.2f},净收入+公积金:{:.2f}'.format(sum_tax,sum_insurance,sum_pure_income,plus_house))
    return sum_tax,sum_insurance,sum_pure_income,taxes,pure_incomes

if __name__=='__main__':
    cal_income()

用以上默认的薪资等参数,函数的输出为:

每月税前工资:15000.00
公积金比例:0.07
养老保险比例:0.08
医疗保险比例:0.02
失业保险金:6.60
每月扣除金额:5000.00
1月份-本月应缴个税:300.00,税后收入:12143.40
2月份-本月应缴个税:223.30,税后收入:12220.10
3月份-本月应缴个税:223.30,税后收入:12220.10
4月份-本月应缴个税:223.30,税后收入:12220.10
5月份-本月应缴个税:487.45,税后收入:11955.95
6月份-本月应缴个税:744.34,税后收入:11699.06
7月份-本月应缴个税:744.34,税后收入:11699.06
8月份-本月应缴个税:744.34,税后收入:11699.06
9月份-本月应缴个税:744.34,税后收入:11699.06
10月份-本月应缴个税:744.34,税后收入:11699.06
11月份-本月应缴个税:744.34,税后收入:11699.06
12月份-本月应缴个税:744.34,税后收入:11699.06
全年累计应缴个税:6667.74,全年应缴三险一金:30679.20,全年净收入:142653.06,净收入+公积金:155253.06

 

将月收入设为3万元,则:

每月税前工资:30000.00
公积金比例:0.07
养老保险比例:0.08
医疗保险比例:0.02
失业保险金:6.60
每月扣除金额:5000.00
1月份-本月应缴个税:750.00,税后收入:24143.40
2月份-本月应缴个税:1219.34,税后收入:23674.06
3月份-本月应缴个税:1989.34,税后收入:22904.06
4月份-本月应缴个税:1989.34,税后收入:22904.06
5月份-本月应缴个税:1989.34,税后收入:22904.06
6月份-本月应缴个税:1989.34,税后收入:22904.06
7月份-本月应缴个税:2025.38,税后收入:22868.02
8月份-本月应缴个税:3978.68,税后收入:20914.72
9月份-本月应缴个税:3978.68,税后收入:20914.72
10月份-本月应缴个税:3978.68,税后收入:20914.72
11月份-本月应缴个税:3978.68,税后收入:20914.72
12月份-本月应缴个税:3978.68,税后收入:20914.72
全年累计应缴个税:31845.48,全年应缴三险一金:61279.20,全年净收入:266875.32,净收入+公积金:292075.32

 

posted @ 2020-09-10 15:53  morein2008  阅读(671)  评论(0编辑  收藏  举报