⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 taxtable.java

📁 一个计算个人所得税的JAVA程序源码
💻 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 + -