新个税计算html、以及java源代码

  • 前言
  • 一、html格式
  • 二、java代码

前言

2019年1月1日起,新个税改革正式全面实施,个税按照年累计的方式计算,个税改革与大家工资息息相关,所以闲来无事用jsp和java代码实现新个税计算。

一、html格式

直接用html格式的话,不用服务器部署,直接浏览就可以打开了。请忽略格式,代码如下:



  
    
    个人所得税计算器
	 
  
  
  
  	

个税计算器

每月税前工资:

五险一金扣除金额:

专项扣除金额:

月份(1-12):

效果如下:
新个税计算html、以及java源代码_第1张图片

新个税计算html、以及java源代码_第2张图片

新个税计算html、以及java源代码_第3张图片

可以看到,月薪1w有专项扣除和没有专项扣除交税情况差别还是挺大的。

二、java代码

import java.util.Scanner;

public class CalcRate {
	public static final double base = 5000.00;// 纳税基准
	static double rateAmount = 0;// 每月税额
	static double beforeAmount = 0;// 税前金额
	static double totlerate = 0;// 累计税额
	static double[] rate;// 税率
	static double p = 0;// 专项扣除
	static double q = 0;// 速算扣除
	static double n = 0;// 五险一金扣除

	static int month = 1;// 月份
	static double[][] rates = { { 0, 0, 0 }, { 36000, 0.03, 0 },
			{ 144000, 0.1, 2520 }, { 3000000, 0.2, 16920 },
			{ 420000, 0.25, 31920 }, { 660000, 0.3, 52920 },
			{ 960000, 0.35, 85920 }, { 999999999, 0.45, 181920 } };

	public static double[] getRate(double totale) {
		double[] rate = { 36000, 0.03, 0 };
		for (int i = 1; i < rates.length; i++) {
			if (totale <= rates[0][0]) {
				rate = rates[0];
			} else if (totale > rates[i - 1][0] && totale <= rates[i][0]) {
				rate = rates[i];
				break;
			}

		}

		return rate;

	}

	public static double inputDouble(String message) {
		double input = -1;
		while (true) {
			System.out.println(message);
			try {
				Scanner in = new Scanner(System.in);
				input = in.nextDouble();
			} catch (Exception e) {
			}
			
			if (input < 0) {
				System.out.println("请输入一个正数值..");
			} else {
				break;
			}
		}
		return input;
	}

	public static int inputMonth() {
		int input = -1;
		while (true) {
			System.out.println("请输入月份:");
			try {
				Scanner in = new Scanner(System.in);
				input = in.nextInt();
			  } catch (Exception e) {
			}
			
			if (input < 1 || input >12) {
				System.out.println("请输入一个正确月份..");
			} else {
				break;
			}
		}
		return input;
	}

	public static void main(String[] args) {
		while (true) {
			rateAmount = 0;
			totlerate = 0;
			System.out.println("-----------个税计算-------------");
			beforeAmount = inputDouble("请输入每月税前金额:");
			n = inputDouble("请输入五险一金扣除金额:");
			q = inputDouble("请输入专项扣除金额:");
			month = inputMonth();
			for(int i = 1;i<= month;i++){
			 double amount = (beforeAmount - n - q -base)*i;
			 rate  = getRate(amount);
			 rateAmount = Math.round(( amount * rate[1])*100)/100 - rate[2]- totlerate;
			 System.out.println("第"+i+"月:应纳税金额:"+amount+",税率:"+rate[1]+",速算扣除金额:"
			 +rate[2]+",往月纳税金额合计:"+totlerate+",本月应缴税额:"+rateAmount);
			 totlerate = totlerate+rateAmount;
			}
		}
	}
}

结果如下:
新个税计算html、以及java源代码_第4张图片

你可能感兴趣的:(Java)