[Python版]2019税改税后工资计算法

2019年1月1日开始,工资税费采用新的扣除规则,适逢刚学python几天,尝试编写一个基本的工资、薪金所得(月薪)计算程序,如有不当,请多指正。

设计思路:

  1. 为了演算方便,每月工资、社保、扣除项设为已知项(也可以改为键盘输入)
  2. 工资、社保、历史扣缴税额、税后工资初始化为列表,预扣率表初始化为字典
  3. 计算1年的缴税情况和工作所得:将每月税前工资、社保、每月计算得出的扣税、税后工资写入列表
  4. 打印出每月纳税额,税后工资,年度纳税总额,税后总额、社保总额

#!/usr/bin/python
#-*- coding:utf-8 -*-
#Filename:new_tax_2019_wages.py
#python V3.4.3

'''
累计预扣预缴应纳税所得额=累计收入-累计免税收入-累计减除费用-累计专项扣除-累计专项附加扣除-累计依法确定的其他扣除
本期应预扣预缴税额=(累计预扣预缴应纳税所得额×预扣率-速算扣除数)-累计减免税额-累计已预扣预缴税额
其中:累计减除费用,按照个税起征点5000元/月乘以纳税人当年截至本月在本单位的任职受雇月份数计算。
'''

def main():
    #每月工资总额
    wages=[]
    #起征点
    BASIC_WAGES=5000
    #社保、公积金、商业保险等缴纳总额
    social_security=[]
    #个人所得税专项附加扣除总额:=子女教育+继续教育+大病医疗+住房贷款利息+住房租金+赡养老人
    s_income_tax=3500
    #其他扣除项总额
    others_deduction=0
    #已预扣预缴税额
    tax_paid_list=[]
    #税后工资清单
    wages_list=[]
    #个人所得税预扣率表
    tax_rate_t={0:[0,36000,0.03,0],
                1:[36000,144000,0.1,2520],
                2:[144000,300000,0.2,16920],
                3:[300000,420000,0.25,31920],
                4:[420000,660000,0.3,52920],
                5:[660000,960000,0.35,85920],
                6:[960000,0.45,181920]
                }

    for y_months in range(12):
        wages_tmp=20000 #int(input('请输入工资金额:'))
        wages.append(wages_tmp)
        social_security_tmp=1000    #float(input('请输入社保公积金缴纳金额:'))
        social_security.append(social_security_tmp)

        # 累计预扣预缴应纳税所得额
        grand_total_taxable_income = sum(wages) - BASIC_WAGES * len(wages) - sum(social_security) - s_income_tax * len(wages) - others_deduction * len(wages)

        for i in range(len(tax_rate_t)):
            if grand_total_taxable_income>tax_rate_t[i][0] and grand_total_taxable_income<=tax_rate_t[i][1]:
                #预扣率
                pre_rate=tax_rate_t[i][2]
                #速算扣除数
                quick_deduction=tax_rate_t[i][3]
                #本期应预扣预缴税额:
                tax_amount_payable=grand_total_taxable_income*pre_rate-quick_deduction-sum(tax_paid_list)
                tax_paid_list.append(round(tax_amount_payable,2))
                wages_taxed=wages_tmp-social_security_tmp-others_deduction-tax_amount_payable
                wages_list.append(round(wages_taxed,2))
                break
            elif i==6 and grand_total_taxable_income>tax_rate_t[i][0]:
                #预扣率
                pre_rate=tax_rate_t[i][1]
                #速算扣除数
                quick_deduction=tax_rate_t[i][2]
                #本期应预扣预缴税额:
                tax_amount_payable=grand_total_taxable_income*pre_rate-quick_deduction-sum(tax_paid_list)
                tax_paid_list.append(round(tax_amount_payable,2))
                wages_taxed=wages_tmp-social_security_tmp-others_deduction-tax_amount_payable
                wages_list.append(round(wages_taxed,2))
                break

    print('每月纳税额清单:',tax_paid_list)
    print('每月税后工资:',wages_list)
    print('纳税总额:{},税后工资总额:{},社保公积金:{},其他扣除项总额:{}'.format(round(sum(tax_paid_list),2),round(sum(wages_list),2),round(sum(social_security),2),others_deduction*(y_months+1)))

if __name__=='__main__':
    main()

 

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
2019年实施专项扣除、累计个税及税后工资计算2019年新个税下累计预扣如何计算 根据2018年12月21日最新出炉的“国家税务总局公告2018年第61号 ”国家税务总局关于发布《个人所得税扣缴申报管理办(试行)》的公告第六条 ,扣缴义务人向居民个人支付工资、薪金所得时,应当按照累计预扣计算预扣税款,并按月办理扣缴申报。 累计预扣的定义 累计预扣,是指扣缴义务人在一个纳税年度内预扣预缴税款时,以纳税人在本单位截至当前月份工资、薪金所得累计收入减除累计免税收入、累计减除费用、累计专项扣除、累计专项附加扣除和累计依确定的其他扣除后的余额为累计预扣预缴应纳税所得额,计算累计应预扣预缴税额,再减除累计减免税额和累计已预扣预缴税额,其余额为本期应预扣预缴税额。余额为负值时,暂不退税。纳税年度终了后余额仍为负值时,由纳税人通过办理综合所得年度汇算清缴,税款多退少补 预扣预缴个税下计算公式 本期应预扣预缴税额=(累计预扣预缴应纳税所得额×预扣率-速算扣除数)-累计减免税额-累计已预扣预缴税额 累计预扣预缴应纳税所得额=累计收入-累计免税收入-累计减除费用-累计专项扣除-累计专项附加扣除-累计依确定的其他扣除 (其中:累计减除费用,按照5000元/月乘以纳税人当年截至本月在本单位的任职受雇月份数计算。)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值