一个简易的工资交税计算器

import java.math.BigDecimal;
import java.util.Arrays;
import java.util.Scanner;/*** 个人所得税计算器*/public class Main {//免征额private static Integer EXEMPTION = 5000;//税率表private static Double RATE1 = 0.03;  //不超过36,000元的部分private static Double RATE2 = 0.10;  //超过36,000元至144,000元的部分private static Double RATE3 = 0.20;  //超过144,000元至300,000元的部分private static Double RATE4 = 0.25;  //超过300,000元至420,000元的部分private static Double RATE5 = 0.30;  //超过420,000元至660,000元的部分private static Double RATE6 = 0.35;  //超过660,000元至960,000元的部分private static Double RATE7 = 0.45;  //超过960,000元的部分public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.print("请输入每个月的工资:");//每月的工资(大于零的正整数)int wage = scanner.nextInt();System.out.print("请输入五险一金值:");int insurance = scanner.nextInt();wage -= insurance;//每年应交税额double sumRate = 0;if (wage <= EXEMPTION) {System.out.println("社会主义好,您不用交税!");} else {double[] monthlyTax = getMonthlyTax(wage);double[] monthlyWage = new double[12];for (int i = 0; i < monthlyTax.length; i++) {sumRate += monthlyTax[i];monthlyWage[i] = wage - monthlyTax[i];}System.out.println("每月实发工资:" + Arrays.toString(monthlyWage));System.out.println("每月交税:" + Arrays.toString(monthlyTax));System.out.println("每年应交税额:" + sumRate);}}/*** 计算每月应缴的的税** @param wage 每月的工资* @return 每个月应缴的的税*/public static double[] getMonthlyTax(int wage) {//每月的税double[] monthlyTax = new double[12];//应纳税所得额int taxPayable = 0;//已缴税款int taxesPaid = 0;for (int i = 0; i < 12; i++) {taxPayable = (wage - EXEMPTION) * (i + 1);double tax = 0;if (taxPayable <= 36000) {tax = (wage - EXEMPTION) * RATE1;} else if (taxPayable <= 144000) {tax = taxPayable * RATE2 - 2520 - taxesPaid;} else if (taxPayable <= 300000) {tax = taxPayable * RATE3 - 16920 - taxesPaid;} else if (taxPayable <= 420000) {tax = taxPayable * RATE4 - 31920 - taxesPaid;} else if (taxPayable <= 660000) {tax = taxPayable * RATE5 - 52920 - taxesPaid;} else if (taxPayable <= 960000) {tax = taxPayable * RATE6 - 85920 - taxesPaid;} else {tax = taxPayable * RATE7 - 181920 - taxesPaid;}taxesPaid += tax;BigDecimal bigDecimal = new BigDecimal(tax);monthlyTax[i] = bigDecimal.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();}return monthlyTax;}
}

在这里插入图片描述


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部