2020 新个税算的头疼?会 python,这都不是事儿…

靠山

今年疫情复工后,财政小姐姐给我们普及了2020年新个税的算法。。

听完之后的感受就是:恩,原来是这么回事!

虽然是个小工薪阶级,然则对于扣若干税照样很体贴的。于是拿起笔算了算2月份的个税,产生了另外一个感受:头疼,晕!

每个月都要这么算一算,估量要溃逃了。

于是,决议行使python语言,用一次脑子写个小剧本算税,以后只要填数据就好啦!

 

 

2020年新个税

在写剧本之前,得整明了剧本要处置哪些逻辑。

那么,就得好好领会领会2020年新个税方案。

凭据财政小姐姐的普及,方案如下:

1)个税起征点调到5000;

2)累积预扣法:

​ 税 = 计税总额 * 扣除比例 – 累积已扣税 – 速算扣除数

​              ||

​ 累积收入 – 累积扣除的(五险一金 + 5000 + 专项附加 + 其它)

​ 累积收入:含奖金、年终奖等。

3)扣除比例的若干,由2)中的计税总额来决议,详细如下表:

 

020  

 

有点儿小庞大,举2个例子来说明:

 

020  

 

 

RedisTemplate:我不背锅,是你用错了

020  

 

python代码实现个税盘算

从以上新个税的收法来看,我们需要分为5部门:

1)每个月的收入 – 累加

2)每个月的扣除 – 累加

3)扣除比例的盘算

4)累积到本月为止的扣税总额

5)扣税额 = (累加收 – 累加扣除)*扣除比例 – 累积扣税 – 速算扣除数

 

步骤1:准备一个excel表格,存放收入和扣除数据

以每月收入1万元为例:

 

020  

 

步骤2:用python读取excel数据,并盘算累积收入/累积扣除/累积扣税额

累积收入、累积已扣税:

 1 #*******************************累积收入+累积已扣税***************************************
 2 def get_all_income_deducted_by_months(sh,m):
 3     """
 4     sh: excel的表单工具
 5     m: 月份。好比当前月份为3月。那么 m=3. 
 6     一样平常公司都是,当月发放上一个月的薪资。3月份 要盘算发放2月份人为时,
 7     总收入 = 1月 + 2月的薪资 + 其它收入 。
 8     总扣税 = 1月已扣税
 9     """
10     income = 0   # 总收入金额
11     tax_deducted = 0 # 已扣税金额
12     for index in range(3,2+(m-1)+1):
13         salary =  sh.cell(row=2,column=index).value
14         print("获取第{}列 第{}个月 的薪资: {}".format(index, index-2,salary))
15         income += salary  # 收入累加
16         tax = sh.cell(row=3, column=index).value
17         print("获取第{}列 第{}个月 的已扣税: {}".format(index, index - 2, tax))
18         tax_deducted += tax
19 
20     # 加上其它收入
21     other_income = sh.cell(row=2,column=15).value
22     print("其它收入为:{}".format(other_income))
23     income += other_income
24     print("加上 {}月 为止的总收入为:{}".format(m,income))
25     print("到目前为止的总扣税为:{}".format(tax_deducted))
26     return income,tax_deducted

 

累积的总扣除项:

 1 #*******************************扣除项***************************************
 2 def get_total_deduction(sh,m):
 3     """
 4     sh: excel的表单工具
 5     m: 月份。好比当前月份为3月。那么 m=3. 
 6     3月份盘算 包罗2月在内的扣除项:
 7     总扣除 = 公积金 * 2 + 社保 *2 + 专项扣除项 * 2  +  5000 * 2 
 8     """
 9     # 各项扣除金额(含公积金&社保&附加项)
10     provident_fund = sh.cell(row=5,column=3).value  # 公积金
11     social_security = sh.cell(row=5,column=4).value # 社保
12     additional_item = sh.cell(row=5,column=5).value # 附加项
13     # 总扣除的金额 
14     total_deduction = (provident_fund + social_security + additional_item + 5000)*(m-1)
15     print("总扣除金额为:{}".format(total_deduction))
16     return total_deduction

 

步骤3 – 依据公式盘算上月扣税额,并写入excel表中对应月份

 1 if __name__ == '__main__':
 2     # 打开计税excel表
 3     wb = load_workbook("data.xlsx")
 4     sh = wb["Sheet1"]
 5     # 获取当前月份
 6     m = datetime.datetime.now().month
 7     # 获取总收入、获取总的扣税额 - 到目前为止
 8     income, tax_deducted= get_all_income_deducted_by_months(sh,m)
 9     # 获取总扣除项
10     total_deduction = get_total_deduction(sh,m)
11     # 计税总额 = 总收入 - 总扣除项
12     cur_income = income - total_deduction
13     print("当前计税金额 = {}(总收入) - {}(总扣除项):{}".format(income,total_deduction,cur_income))
14     # 最终要扣税 --- 盘算公式
15     # 税 =  计税总额 * 扣除比例 - 累积已扣税 - 速算扣除数
16     tax_money = 0
17     if 0<= cur_income <= 36000:
18         tax_money = cur_income * 0.03 - tax_deducted
19     elif 36000 < cur_income <= 144000:
20         tax_money = cur_income * 0.1 - tax_deducted - 2520
21     elif 144000 < cur_income <= 300000:
22         tax_money = cur_income * 0.2 - tax_deducted -16920
23     elif 300000 < cur_income <= 420000:
24         tax_money = cur_income * 0.25 - tax_deducted - 31920
25     elif 420000 < cur_income <= 660000:
26         tax_money = cur_income * 0.3 - tax_deducted - 52920
27     elif 660000 < cur_income <= 960000:
28         tax_money = cur_income * 0.35 - tax_deducted - 85920
29     elif 960000 < cur_income:
30         tax_money = cur_income  * 0.45 - tax_deducted - 181920
31 
32     print("{}月最终的扣税人民币为:{}".format(m-1,tax_money))
33 
34     # 将扣税额写入对应的月份
35     sh.cell(row=3,column=m+1).value = tax_money
36     wb.save("data.xlsx")

 

现在是3月份,那么若是收入是每月10000,2月份的扣税金额为:

 

020  

 

下一个月的时刻,只要再运行一下这个剧本,就可以获得3月份的扣税额哦!!

固然,你也可以一口气把这一年的都算完。

固然,有些小伙伴每月的收入并不是牢固的,有些小伙伴另有一些分外的收入。

都可以在此基础上凭据小我私家情形做调整哦!!

原创文章,作者:28qn新闻网,如若转载,请注明出处:http://www.28qn.com/archives/469.html