2020 新個稅算的頭疼?會 python,這都不是事兒...

背景

今年疫情復工後,財務小姐姐給咱們普及了2020年新個稅的算法。。html

聽完以後的感受就是:恩,原來是這麼回事!python

雖然是個小工薪階級,可是對於扣多少稅仍是很關心的。因而拿起筆算了算2月份的個稅,產生了另一個感受:頭疼,暈!算法

每月都要這麼算一算,估計要崩潰了。ide

因而,決定利用python語言,用一次腦子寫個小腳本算稅,之後只要填數據就好啦!ui

 

 

2020年新個稅

在寫腳本以前,得整明白腳本要處理哪些邏輯。spa

那麼,就得好好了解了解2020年新個稅方案。3d

按照財務小姐姐的普及,方案以下:excel

1)個稅起徵點調到5000;code

2)累積預扣法:orm

​ 稅 = 計稅總額 * 扣除比例 - 累積已扣稅 - 速算扣除數

​              ||

​ 累積收入 - 累積扣除的(五險一金 + 5000 + 專項附加 + 其它)

​ 累積收入:含獎金、年終獎等。

3)扣除比例的多少,由2)中的計稅總額來決定,具體以下表:

 

 

 

有點兒小複雜,舉2個例子來講明:

 

 

 

 

 

 

python代碼實現個稅計算

從以上新個稅的收法來看,咱們須要分爲5部分:

1)每月的收入 - 累加

2)每月的扣除 - 累加

3)扣除比例的計算

4)累積到本月爲止的扣稅總額

5)扣稅額 = (累加收 - 累加扣除)*扣除比例 - 累積扣稅 - 速算扣除數

 

步驟1:準備一個excel表格,存放收入和扣除數據

以每個月收入1萬元爲例:

 

 

 

步驟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月份的扣稅金額爲:

 

 

 

下一個月的時候,只要再運行一下這個腳本,就能夠獲得3月份的扣稅額哦!!

固然,你也能夠一口氣把這一年的都算完。

固然,有些小夥伴每個月的收入並非固定的,有些小夥伴還有一些額外的收入。

均可以在此基礎上根據我的狀況作調整哦!!

原文出處:https://www.cnblogs.com/Simple-Small/p/12426260.html

相關文章
相關標籤/搜索