个税计算器python

话说那天老大说:“我们XX公司成立了”,然后悲催的是要上税了!!!那要扣多少钱钱呢?更悲催俺是一个码农,所以,你懂的


class SalaryTax:
    def __init__(self, base, steps):
        self.base = base
        self.steps = steps

        self.stepTopSalary = []

    def getTax(self, income, dutyfree):
        taxSalary = income - self.base - dutyfree

        i = 0
        ladderTaxs = []
        while (taxSalary > 0):
            ladder, rate = self.steps[i][0], self.steps[i][1]            
            ladderTaxs.append(min(ladder, taxSalary) * rate)
            print str(min(ladder, taxSalary)) + " -> " + str(rate) + "  "  + str(ladderTaxs[-1])
            taxSalary -= ladder

            i += 1
                              
        print "** " + str(ladderTaxs)
        return sum(ladderTaxs)

    def salaryAgainst(self, expect, dutyfree):
        preTax = expect

        taxSalary = expect - self.base - dutyfree
        i  = 0
        while (taxSalary > 0):
            ladder, rate = self.steps[i][0], self.steps[i][1]

            preTax += min(taxSalary - ladder, ladder) * rate
            taxSalary -= ladder

            i += 1

        return preTax
                
                            
        

TaxBaseLine = [(1500,0.03), (4500, 0.1), (9000, 0.2), (35000,0.25), (55000, 0.3), (0x7ffffff, 0.45)]

stax = SalaryTax(3500, TaxBaseLine)
print stax.getTax(500, 0)
print stax.getTax(5000000, 0)
print stax.getTax(8500, 0)
print stax.getTax(9500, 0)

print stax.salaryAgainst(9500 - 495, 0)




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值