計算個人所得稅的java代碼

適用於深圳的個人所得稅。中間還用100做步長遍歷打印出個人所得稅,在excel中可以處理。

public class SZTax {

	/**
	 * 返回扣除社保醫保公積金後薪水
	 * @param salaryBeforeTax 扣除社保醫保公積金前薪水
	 * @return
	 */
	public int salaryAfterTax(int salaryBeforeTax)
	{
//		(3W-3.5K)*25%-1005
//		扣稅公式是:
//		(扣除社保醫保公積金後薪水-個稅起徵點)*稅率-速算扣除數
		int taxbase=salaryBeforeTax-3500;
		int Taxrate=0;//這裏稅率沒有除以百分比;
		int Quickdeduction=0;
		if(taxbase <=0)//低於個稅起徵點
		{
			return salaryBeforeTax;
		}else if(taxbase <=1500)
		{
			Taxrate=3;
			Quickdeduction=0;
		}else if(taxbase <=4500)
		{
			Taxrate=10;
			Quickdeduction=105;
		}else if(taxbase <=9000)
		{
			Taxrate=20;
			Quickdeduction=555;
		}else if(taxbase <=35000)
		{
			Taxrate=25;
			Quickdeduction=1005;
		}else if(taxbase <=55000)
		{
			Taxrate=30;
			Quickdeduction=2755;
		}else if(taxbase <=80000)
		{
			Taxrate=35;
			Quickdeduction=5505;
		}else
		{
			Taxrate=45;
			Quickdeduction=13505;
		}			
		return salaryBeforeTax-((salaryBeforeTax-3500)*Taxrate/100-Quickdeduction);
	}
	
	public void costeffectivesalary(int salaryBeforeTax)
	{
		//從1萬算起,100的步長算到10萬,找出稅後稅前比最大的。
		for (;salaryBeforeTax <= 100000; salaryBeforeTax=salaryBeforeTax+100) {
			float rate=(float)salaryAfterTax(salaryBeforeTax)/salaryBeforeTax*100000;
			System.out.println(""+salaryBeforeTax+"-----------"+salaryAfterTax(salaryBeforeTax)+"-----------"+rate);
		}
	}
	
	public static void main(String[] args) 
	{
		new SZTax().costeffectivesalary(10000);
	}
}






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章