/****************************************************************************** * This program computes employee FICA taxes. * * Copyright © 2020 Richard Lesh. All rights reserved. *****************************************************************************/ import org.pureprogrammer.Utils; public class FICA2 { static final double SS_TAX_RATE = 0.062; static final double SS_LIMIT = 127200.0; static final double MEDICARE_TAX_RATE1 = 0.0145; static final double MEDICARE_TAX_RATE2 = 0.0235; static final double MEDICARE_BREAKPOINT = 200000.0; public static void main(String[] args) { if (args.length != 1) { System.out.println(Utils.format("Syntax: {0:s} annual_salary", "FICA2")); System.exit(1); } final double ANNUAL_SALARY = Utils.stodWithDefault(args[0], 0.0); double ssTax; if (ANNUAL_SALARY < SS_LIMIT) { ssTax = ANNUAL_SALARY * SS_TAX_RATE; } else { ssTax = SS_LIMIT * SS_TAX_RATE; } double medicareTax; if (ANNUAL_SALARY <= MEDICARE_BREAKPOINT) { medicareTax = ANNUAL_SALARY * MEDICARE_TAX_RATE1; } else { medicareTax = MEDICARE_BREAKPOINT * MEDICARE_TAX_RATE1 + (ANNUAL_SALARY - MEDICARE_BREAKPOINT) * MEDICARE_TAX_RATE2; } final double NET_SALARY = ANNUAL_SALARY - ssTax - medicareTax; System.out.println(Utils.format("Gross Salary: ${0:.2f}", ANNUAL_SALARY)); System.out.println(Utils.format("Social Security Tax: ${0:.2f}", ssTax)); System.out.println(Utils.format("Medicare Tax: ${0:.2f}", medicareTax)); System.out.println(Utils.format("Net Salary: ${0:.2f}", NET_SALARY)); } }