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; private static Double RATE2 = 0.10; private static Double RATE3 = 0.20; private static Double RATE4 = 0.25; private static Double RATE5 = 0.30; private static Double RATE6 = 0.35; private static Double RATE7 = 0.45; 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);}}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;}
}

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