?? 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 + -