/****************************************************************************** * This program computes federal income tax. * * Copyright © 2020 Richard Lesh. All rights reserved. *****************************************************************************/ import org.pureprogrammer.Utils; public class IncomeTax2 { public static void main(String[] args) { double income = 0.; String status = "S"; double incomeTax = 0.; if (args.length == 2) { income = Utils.stodWithDefault(args[0], 0); status = args[1]; } else { System.out.println(Utils.format("Syntax: {0:s} income S|M|H", "IncomeTax2")); System.exit(1); } if (status.equals("H") ) { if (income <= 14100.) { incomeTax += income * 0.10; } else { incomeTax += 14100. * 0.10; if (income <= 53700.) { incomeTax += (income - 14100.) * 0.12; } else { incomeTax += (53700. - 14100.) * 0.12; if (income <= 85500.) { incomeTax += (income - 53700.) * 0.22; } else { incomeTax += (85500. - 53700.) * 0.22; if (income <= 163300.) { incomeTax += (income - 85500.) * 0.24; } else { incomeTax += (163300. - 85500.) * 0.24; if (income <= 207350.) { incomeTax += (income - 163300.) * 0.32; } else { incomeTax += (207350. - 163300.) * 0.32; if (income <= 518400.) { incomeTax += (income - 207350.) * 0.35; } else { incomeTax += (518400. - 207350.) * 0.35; if (income > 518400.) { incomeTax += (income - 518400.) * 0.37; } } } } } } } } else if (status.equals("M") ) { if (income <= 19750.) { incomeTax += income * 0.10; } else { incomeTax += 19750. * 0.10; if (income <= 80250.) { incomeTax += (income - 19750.) * 0.12; } else { incomeTax += (80250. - 19750.) * 0.12; if (income <= 171050.) { incomeTax += (income - 80250.) * 0.22; } else { incomeTax += (171050. - 80250.) * 0.22; if (income <= 326600.) { incomeTax += (income - 171050.) * 0.24; } else { incomeTax += (326600. - 171050.) * 0.24; if (income <= 414700.) { incomeTax += (income - 326600.) * 0.32; } else { incomeTax += (414700. - 326600.) * 0.32; if (income <= 622050.) { incomeTax += (income - 414700.) * 0.35; } else { incomeTax += (622050. - 414700.) * 0.35; if (income > 622050.) { incomeTax += (income - 622050.) * 0.37; } } } } } } } } else { if (income <= 9875.) { incomeTax += income * 0.10; } else { incomeTax += 9875. * 0.10; if (income <= 40125.) { incomeTax += (income - 9875.) * 0.12; } else { incomeTax += (40125. - 9875.) * 0.12; if (income <= 85525.) { incomeTax += (income - 40125.) * 0.22; } else { incomeTax += (85525. - 40125.) * 0.22; if (income <= 163300.) { incomeTax += (income - 85525.) * 0.24; } else { incomeTax += (163300. - 85525.) * 0.24; if (income <= 207350.) { incomeTax += (income - 163300.) * 0.32; } else { incomeTax += (207350. - 163300.) * 0.32; if (income <= 518400.) { incomeTax += (income - 207350.) * 0.35; } else { incomeTax += (518400. - 207350.) * 0.35; if (income > 518400.) { incomeTax += (income - 518400.) * 0.37; } } } } } } } } System.out.println(Utils.format("Federal Income Tax: ${0:.2f}", incomeTax)); } }