Quantcast
Channel: Federal and state income tax calculator - Code Review Stack Exchange
Viewing all articles
Browse latest Browse all 5

Federal and state income tax calculator

$
0
0

I'm trying to optimize this code by:

  1. condensing repetitive statements
  2. Improving the code/make it less confusing
  3. Branch out to include other filing status such as "married""joint" filing status
  4. branch out to all 50 states

Any suggestions how to do any of these things would be awesome.

/** This program calculates Single-filing 2015 Federal Tax Schedule and Georgia State income Tax For GA residents making >= $7,000 */import java.util.Scanner;public class fedIncomeTax{public static void main(String[] args){Scanner in = new Scanner(System.in);System.out.print("Enter income over $7,000: "); // this is because there are different tax rates for GA residents who earn below that markif (in.hasNextDouble()) // Checks whether the next input is a real number && if false prints error message  { double begIncome = in.nextDouble(); // Georgia State tax for incomes >= $7,000 final double GA_TAX_1 = 0.06; final double GA_TAX_2 = 230; // fed tax rates final double FED_TAX_10 = 0.10; // $1 - 9075 final double FED_TAX_15 = 0.15; // $9076 - 36900 final double FED_TAX_25 = 0.25; // $36901 - 89350 final double FED_TAX_28 = 0.28; // $89351 - 186350 final double FED_TAX_33 = 0.33; // $186,351 - 405,100 final double FED_TAX_35 = 0.35; // $405,101 - $406,750 final double FED_TAX_39 = 0.396; // > $406,750 // income brackets final double BRACKET_10 = 9075; final double BRACKET_15 = 36900; final double BRACKET_25 = 89350; final double BRACKET_28 = 186350; final double BRACKET_33 = 405100; final double BRACKET_35 = 406750; final double BRACKET_39 = 406751; // max amount per bracket final double MAX_TAX_15 = 907.50; final double MAX_TAX_25 = 5081.25; final double MAX_TAX_28 = 18193.75; final double MAX_TAX_33 = 45353.75; final double MAX_TAX_35 = 117541.25; final double MAX_TAX_39 = 118118.75; //double begIncome = in.nextDouble(); if (begIncome < 7000) {    System.out.println("Error: Please enter an income figure of $7000 or more."); } // Now we know that the user entered a real number else {      // Compute taxes by income range    if (begIncome <= BRACKET_10)                                               // $1 - 9075    {       double govTax = begIncome * (FED_TAX_10);       double localTax = (begIncome * GA_TAX_1) + GA_TAX_2;       double totalTax = govTax + localTax;       double endIncome = begIncome - totalTax;       System.out.printf("Your tax rate is:       $ %8.2f\n", totalTax);       System.out.printf ("Your ending income is:  $ %8.2f", endIncome);    }    else if (begIncome > BRACKET_10 && begIncome <= BRACKET_15)            // $9076 - 36900    {       double govTax = (begIncome - BRACKET_10) * FED_TAX_15 + MAX_TAX_15;       double localTax = (begIncome * GA_TAX_1) + GA_TAX_2;       double totalTax = govTax + localTax;       double endIncome = begIncome - totalTax;       System.out.printf("Your tax rate is:       $ %8.2f\n", totalTax);       System.out.printf ("Your ending income is:  $ %8.2f", endIncome);    }    else if (begIncome > BRACKET_15 && begIncome <= BRACKET_25)            // $36901 - 89350    {       double govTax = (begIncome - BRACKET_15) * FED_TAX_25 + MAX_TAX_25;       double localTax = (begIncome * GA_TAX_1) + GA_TAX_2;       double totalTax = govTax + localTax;       double endIncome = begIncome - totalTax;       System.out.printf("Your tax rate is:       $ %8.2f\n", totalTax);       System.out.printf ("Your ending income is:  $ %8.2f", endIncome);    }    else if (begIncome > BRACKET_25 && begIncome <= BRACKET_28)            // $89351 - 186350    {       double govTax = (begIncome - BRACKET_25) * FED_TAX_28 + MAX_TAX_28;       double localTax = (begIncome * GA_TAX_1) + GA_TAX_2;       double totalTax = govTax + localTax;       double endIncome = begIncome - totalTax;       System.out.printf("Your tax rate is:       $ %8.2f\n", totalTax);       System.out.printf ("Your ending income is:  $ %8.2f", endIncome);    }    else if (begIncome > BRACKET_28 && begIncome <= BRACKET_33)            // $186,351 - 405,100    {       double govTax = (begIncome - BRACKET_28) * FED_TAX_33 + MAX_TAX_33;       double localTax = (begIncome * GA_TAX_1) + GA_TAX_2;       double totalTax = govTax + localTax;       double endIncome = begIncome - totalTax;       System.out.printf("Your tax rate is:       $ %8.2f\n", totalTax);       System.out.printf ("Your ending income is:  $ %8.2f", endIncome);    }    else if (begIncome > BRACKET_33 && begIncome <= BRACKET_35)            // $405,101 - $406,750    {       double govTax = (begIncome - BRACKET_33) * FED_TAX_35 + MAX_TAX_35;       double localTax = (begIncome * GA_TAX_1) + GA_TAX_2;       double totalTax = govTax + localTax;       double endIncome = begIncome - totalTax;       System.out.printf("Your tax rate is:       $ %8.2f\n", totalTax);       System.out.printf ("Your ending income is:  $ %8.2f", endIncome);    }    else if (begIncome > BRACKET_35)                                         // > $406,750    {       double govTax = (begIncome - BRACKET_35) * FED_TAX_39 + MAX_TAX_39;       double localTax = (begIncome * GA_TAX_1) + GA_TAX_2;       double totalTax = govTax + localTax;       double endIncome = begIncome - totalTax;       System.out.printf("Your tax rate is:       $ %8.2f\n", totalTax);       System.out.printf ("Your ending income is:  $ %8.2f", endIncome);    }     } }                else {  System.out.println("Error: Please input a numerical value greater than 0."); }}}  

Viewing all articles
Browse latest Browse all 5

Latest Images

Trending Articles





Latest Images