• 个税及税后工资计算


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

    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
  • 相关阅读:
    qt运行时连接signal和slot
    linux使用usb转串口调试ARM开发板
    qwt自定义时间标尺TimeScale
    关于mysql 导入大型数据问题的解决(转载,出处以忘)
    JavaScript replace(RegExp, Function)详解
    有关高度和宽度的对象
    前自增和后自增(chrome js 为了保险,还没测过其它的)
    JavaScript效率PK——统计特定字符在字符串中出现的次数
    getStyle函数
    解决CHM文件在WIN7下崩溃和自动生成CHW文件的问题
  • 原文地址:https://www.cnblogs.com/aaronhoo/p/13646191.html
Copyright © 2020-2023  润新知