背景

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

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

虽然是个小工薪阶级,但是对于扣多少税还是很关心的。于是拿起笔算了算 2 月份的个税,产生了另外一个感觉:头疼,晕!

每个月都要这么算一算,估计要崩溃了。

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

2020 年新个税

在写脚本之前,得整明白脚本要处理哪些逻辑。

那么,就得好好了解了解 2020 年新个税方案。

按照财务小姐姐的普及,方案如下:

个税起征点调到 5000;

累积预扣法:

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

||

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

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

扣除比例的多少,由 2)中的计税总额来决定,具体如下表:

有点儿小复杂,举 2 个例子来说明:

python 代码实现个税计算

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

每个月的收入 - 累加

每个月的扣除 - 累加

扣除比例的计算

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

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

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

以每月收入 1 万元为例:

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

累积收入、累积已扣税:

#*******************************累积收入+累积已扣税***************************************

def get_all_income_deducted_by_months(sh,m):

"""sh: excel的表单对象m: 月份。比如当前月份为3月。那么 m=3.一般公司都是,当月发放上一个月的薪资。3月份 要计算发放2月份工资时,总收入 = 1月 + 2月的薪资 + 其它收入 。总扣税 = 1月已扣税"""

income = 0 # 总收入金额

tax_deducted = 0 # 已扣税金额

for index in range(3,2+(m-1)+1):

salary = sh.cell(row=2,column=index).value

print("获取第{}列 第{}个月 的薪资: {}".format(index, index-2,salary))

income += salary # 收入累加

tax = sh.cell(row=3, column=index).value

print("获取第{}列 第{}个月 的已扣税: {}".format(index, index - 2, tax))

tax_deducted += tax

# 加上其它收入

other_income = sh.cell(row=2,column=15).value

print("其它收入为:{}".format(other_income))

income += other_income

print("加上 {}月 为止的总收入为:{}".format(m,income))

print("到目前为止的总扣税为:{}".format(tax_deducted))

return income,tax_deducted

累积的总扣除项:

#*******************************扣除项***************************************

def get_total_deduction(sh,m):

"""sh: excel的表单对象m: 月份。比如当前月份为3月。那么 m=3.3月份计算 包含2月在内的扣除项:总扣除 = 公积金 * 2 + 社保 *2 + 专项扣除项 * 2 + 5000 * 2"""

# 各项扣除金额(含公积金&社保&附加项)

provident_fund = sh.cell(row=5,column=3).value # 公积金

social_security = sh.cell(row=5,column=4).value # 社保

additional_item = sh.cell(row=5,column=5).value # 附加项

# 总扣除的金额

total_deduction = (provident_fund + social_security + additional_item + 5000)*(m-1)

print("总扣除金额为:{}".format(total_deduction))

return total_deduction

步骤 3 - 依据公式计算上月扣税额,并写入 Excel 表中对应月份

if __name__ == '__main__':

# 打开计税excel表

wb = load_workbook("data.xlsx")

sh = wb["Sheet1"]

# 获取当前月份

m = datetime.datetime.now().month

# 获取总收入、获取总的扣税额 - 到目前为止

income, tax_deducted= get_all_income_deducted_by_months(sh,m)

# 获取总扣除项

total_deduction = get_total_deduction(sh,m)

# 计税总额 = 总收入 - 总扣除项

cur_income = income - total_deduction

print("当前计税金额 = {}(总收入) - {}(总扣除项):{}".format(income,total_deduction,cur_income))

# 最终要扣税 --- 计算公式

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

tax_money = 0

if 0<= cur_income <= 36000:

tax_money = cur_income * 0.03 - tax_deducted

elif 36000 < cur_income <= 144000:

tax_money = cur_income * 0.1 - tax_deducted - 2520

elif 144000 < cur_income <= 300000:

tax_money = cur_income * 0.2 - tax_deducted -16920

elif 300000 < cur_income <= 420000:

tax_money = cur_income * 0.25 - tax_deducted - 31920

elif 420000 < cur_income <= 660000:

tax_money = cur_income * 0.3 - tax_deducted - 52920

elif 660000 < cur_income <= 960000:

tax_money = cur_income * 0.35 - tax_deducted - 85920

elif 960000 < cur_income:

tax_money = cur_income * 0.45 - tax_deducted - 181920

print("{}月最终的扣税人民币为:{}".format(m-1,tax_money))

# 将扣税额写入对应的月份

sh.cell(row=3,column=m+1).value = tax_money

wb.save("data.xlsx")

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

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

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

当然,有些小伙伴每月的收入并不是固定的,有些小伙伴还有一些额外的收入。

都可以在此基础上根据个人情况做调整哦!!

python个税筹划_2020 新个税算的头疼?会 python,这都不是事儿。相关推荐

  1. python输入个人所得税计算_2020年你会算个人所得税吗?没关系,python脚本帮助你!...

    2020年你会算个人所得税吗?没关系,python脚本帮助你! 引文 小编辛苦精心为各位网友准备了2020年最新个人所得税税率表,个税税率表,5000元起征点,包括工资税率表.年终奖税率表.劳务税率表 ...

  2. python个人所得税税率表_2020年你会算个人所得税吗?没关系,python脚本帮助你!...

    2020年你会算个人所得税吗?没关系,python脚本帮助你! 引文 小编辛苦精心为各位网友准备了2020年最新个人所得税税率表,个税税率表,5000元起征点,包括工资税率表.年终奖税率表.劳务税率表 ...

  3. python的for语句写新的字符串_python写for循环python字符串排序方法

    一般情况下,python中对一个字符串排序相当麻烦: 一.python中的字符串类型是不允许直接改变元素的.必须先把要排序的字符串放在容器里,如list. 二.python中的list容器的sort( ...

  4. 大学python搜题软件_2020中国大学MOOC的APP慕课用Python玩转数据期末考试搜题公众号答案...

    [多选] 学前教育的主要任务是(). [填空题] 3V化25Hz相敏轨道电路受端变压器采用电抗轨道变压器型号为:(). [单选] 0.1MPa,20℃时,10克食盐可完全溶解于100克水中,此温度压力 ...

  5. python我的所得税计算器_教你使用Python实现新个税计算器

    自从采用新个税计算方法后,每个月发工资你是否真的清楚扣多少税? 今天跟大家分享下如何计算,希望大家喜欢. 计税方法科普 个税方法 这里需要知道的知识点: 1.个税起征点调到 5000; 2.累积预扣法 ...

  6. html提交表单使用python计算_教你使用Python实现新个税计算器

    自从采用新个税计算方法后,每个月发工资你是否真的清楚扣多少税? 今天跟大家分享下如何计算,希望大家喜欢. 计税方法科普 个税方法 这里需要知道的知识点: 1.个税起征点调到 5000: 2.累积预扣法 ...

  7. 教你使用Python实现新个税计算器

    自从采用新个税计算方法后,每个月发工资你是否真的清楚扣多少税? 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手. 很多已经做案例的人,却 ...

  8. 新个税来了!一图看清你能省多少钱,转需! ​​​​

    31日下午,备受社会关注的关于修改个人所得税法的决定经十三届全国人大常委会第五次会议表决通过.至此,七次大修后的新个税法正式亮相! 起征点确定为每月5000元.新个税法规定:居民个人的综合所得,以每一 ...

  9. 用计算机怎么计算税率表,5000元新个税计算器公式税率表

    个税起征点已从2018年10月1日开始,由3500元调整为5000元,而且全国统一为5000元. 对于上班族来说,最关心的就是个人所得税了,因为这是关系到自己的利益问题.但是现在,根据最新消息得知,2 ...

最新文章

  1. cad常用字体_2300多种CAD字体免费送给你!绘图必备,一键解决你的CAD文字乱码问题...
  2. [SCOI2009]最长距离
  3. Arthur J.Riel的61条面向对象设计的经验原则[ZT]
  4. java怎么拦截数据库查询结果_关于mybatis拦截器,有谁知道怎么对结果集进行拦截,将指定字段查询结果进行格式化...
  5. [转] Windows Server 2012 Beta (Hyper-V 3.0) VM Replica與Live Migration Winout Shared Storage
  6. 安装WindowBuilder后,新建JFrame文件,不能查看Design
  7. ios知识整理 (未完成)
  8. 《编码的奥秘》记录(二)
  9. [力软7.0.6]力软敏捷开发框架前端API
  10. 手机5g什么时候普及_5G牌照发放仨月,5G手机扎堆上市,何时才能真正普及?
  11. 2022年调味品行业研究报告
  12. 定义一个方法用于判断一个字符串是否是对称的字符串(StringBuilder),例如:abcba、上海自来水来自海上均为对称字符串。
  13. Cisco服务器硬盘状态jbod,2018-11-06 JBOD模式下LSI9361RAID卡操作步骤
  14. in ./node_modules/html-entities/lib/index.js终端报错
  15. ERD Commander 2005 Boot CD 剖析及汉化试验
  16. 骁龙8+参数 骁龙8+什么水平 骁龙8+处理器怎么样
  17. 如何靠区块链赚钱?区块链到底是不是骗局?
  18. Excel 隔行变色
  19. GAME(A)性能测试过程模型
  20. 插画构图的六种基本形式,小白必看!

热门文章

  1. 10进制转8||16进制
  2. GC6609 36V 2A国产超静音,低振动,256细分,全方位保护,step/dir接口或uart接口,AGC自动幅度调整 低成本替代trinamic TMC2208/2209
  3. 计算机服务 访问拒绝,Win7开机提示group policy client服务未能登录,拒绝访问的解决方法...
  4. java 调用大漠插件2
  5. 梅森素数(mason)
  6. 【2023】分享一份网友的Linux运维面试题
  7. B类和AB类功率放大器
  8. 学生管理系统--网络版
  9. 创建维基WIKI百科和建立百度百科有何不同?
  10. 贪心:Huffman树(合并果子)、排序不等式(排队打水)