import matplotlib.pyplot as plt
import numpy as np
class IndivTax:
def __init__(self):
self.sa=np.array([0,0,36000,144000,300000,420000,660000,960000])
self.stax=np.array([0,3,10,20,25,30,35,45])*0.01
self.sbase=np.array([0,0,2520,16920,31920,52920,85920,181920])
self.inc=np.array([0,5000,39920,137120,261920,351920,519920,714920])-5000;
由睡前的个睡
def individualtax(self,s):
s1 = s
if s1<=0.001:
return 0.0;
y=np.round(max( self.stax*(s1)-self.sbase),2 )
return y;
由睡后得个睡
def individualtax_rev(self,t):
s1 = t
if s1<=0.001:
return 0;
r=self.stax
rx=1-self.stax
txx=(r*(s1)-self.sbase)/rx
#print(" txx={}",txx)
y=np.max(txx )
return y;
def main2():
xx=np.array([0,35000,40000,41000,41001,144000,300000,50*10000,1000000],dtype=float)
diff=0.0
invt=IndivTax()
for x in xx : #np.arange(0,100*10000,step=2) :
tax0 = invt.individualtax(x - 5000)
inc0=x-tax0
tax1=invt.individualtax_rev(inc0-5000)
x1=inc0+tax1
diff0=np.abs(x1-x)
if diff0>-0.2:
diff =diff0
print("-- x={} tax={} inc0={} ".format(x, tax0, inc0))
print(" x1={} tax1={} inc0={} diff={} ".format(x1, tax1, inc0,diff))
#tax2=individualtaxback_rev(inc0-5000)
#x2=inc0+tax2
#print(" x2={} tax1={} inc0={} ".format(x2, tax2, inc0))
if __name__ == '__main__':
#main()
main2();