📄 taxtable.java
字号:
/**税率表类,含起征点和各级税率,两者均可被修改
*/
public class TaxTable{
/**
* 起征点
*/
private double BASE;
/**
* 各级税率表
*/
private TaxUnit[] tu;
/**
* 总的税率级数
*/
private int TaxLevelTotal;
/**
* 初始化各级税率及金额界限
*
*/
public TaxTable(){
TaxLevelTotal=5;
tu=new TaxUnit[TaxLevelTotal+1];
for(int i=1;i<=TaxLevelTotal;i++){
tu[i]=new TaxUnit();
}
tu[1].setTaxLevel(1);
tu[1].setMinMoney(0);
tu[1].setMaxMoney(500);
tu[1].setTaxRate(0.05);
tu[2].setTaxLevel(2);
tu[2].setMinMoney(500);
tu[2].setMaxMoney(2000);
tu[2].setTaxRate(0.1);
tu[3].setTaxLevel(3);
tu[3].setMinMoney(2000);
tu[3].setMaxMoney(5000);
tu[3].setTaxRate(0.15);
tu[4].setTaxLevel(4);
tu[4].setMinMoney(5000);
tu[4].setMaxMoney(20000);
tu[4].setTaxRate(0.2);
tu[5].setTaxLevel(5);
tu[5].setMinMoney(20000);
tu[5].setTaxRate(0.25);
}
/**
* 读起征点
* @return 返回起征点金额
*/
public double getBASE(){
return BASE;
}
/**
* 设置修改起征点
* @param base 要设置或修改的起征点金额
*/
public void setBASE(double base){
BASE=base;
}
/**
* 读总的税率级数
* @return 返回总的税率级数
*/
public int getTaxLevelTotal(){
return TaxLevelTotal;
}
/**
* 读某级税率
* @param TaxLevel 要读税率的级别
* @return 返回该级税率
*/
public double getTaxRate(int TaxLevel){
if(TaxLevel<1||TaxLevel>TaxLevelTotal)
return -1;
return tu[TaxLevel].getTaxRate();
}
/**
* 设置修改某级税率
* @param TaxLevel 要设置修改税率的级别
* @param NewTaxRate 该级别税率的新值
* @return 设置成功则返回true;否则返回false
*/
public boolean setTaxRate(int TaxLevel,double NewTaxRate){
if(TaxLevel<1||TaxLevel>TaxLevelTotal)
return false;
if(NewTaxRate<0||NewTaxRate>1)
return false;
tu[TaxLevel].setTaxRate(NewTaxRate);
return true;
}
/**
* 计算个人所得税
* @param income 工资总收入
* @return 个人所得税
*/
public double CountIncomeTax(double income){
double tax=0.00;
double taxible=income-BASE;
for(int i=TaxLevelTotal;i>0;i--){
if(taxible>tu[i].getMinMoney()){
tax=tax+(taxible-tu[i].getMinMoney())*tu[i].getTaxRate();
taxible=tu[i].getMinMoney();
}
}
return tax;
}
/**
* 单元测试函数
* @param args 命令行参数
*/
public static void main(String args[]){
TaxTable tt=new TaxTable();
tt.setBASE(1600);
System.out.println("起征点:"+tt.getBASE()+"元");
System.out.println("税率表:");
System.out.println("┏━━━━━━━━━━━━━━━━━━━┓");
System.out.println("┃ 级别 应纳税所得额 税率%┃");
System.out.println("┃ 1 不超过500元的 "+(int)(tt.getTaxRate(1)*100)+" ┃");
System.out.println("┃ 2 超过500元至2000元的部分 "+(int)(tt.getTaxRate(2)*100)+" ┃");
System.out.println("┃ 3 超过2000元至5000元的部分 "+(int)(tt.getTaxRate(3)*100)+" ┃");
System.out.println("┃ 4 超过5000元至20000元的部分 "+(int)(tt.getTaxRate(4)*100)+" ┃");
System.out.println("┃ 5 超过20000元部分 "+(int)(tt.getTaxRate(5)*100)+" ┃");
System.out.println("┗━━━━━━━━━━━━━━━━━━━┛");
System.out.println("某人工资总收入:4300元");
System.out.println("某人个人所得税:"+tt.CountIncomeTax(4300)+"元");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -