Advertisement
clockworkpc

Australian Income Tax Calculations v1.0

Aug 5th, 2011
267
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 8.92 KB | None | 0 0
  1. #!/usr/bin/python
  2. #taxCalc.py
  3.  
  4. # Released under a GPLv3 Licence by Clockwork PC 2011  
  5. #
  6. # www.clockworkpc.com.au
  7. #
  8. # You are entitled to the following four freedoms:
  9. # Freedom 0: To run this program for any purpose
  10. # Freedom 1: To study how this program works and change it to make it do what you wish
  11. # Freedom 2: To redistribute copies so you can help your neighbour
  12. # Freedom 3: To distribute copies of your modified version to others
  13.  
  14. def weeklyIncome():
  15.    
  16.     print ""
  17.     print "The following calculations will be based on your weekly gross income."
  18.     print ""
  19.    
  20.     weeklyGrossPay = int(input("How much do you gross per week? "))
  21.     annualGrossPay = weeklyGrossPay * 52
  22.  
  23.     if 0 < annualGrossPay <= 6000:
  24.         annualIncomeTax = 0
  25.     elif 6000 < annualGrossPay <= 37000:
  26.       annualIncomeTax = (annualGrossPay - 6000)*0.15
  27.     elif 37000 < annualGrossPay <= 80000:
  28.       annualIncomeTax = 4650 + (0.3 * (annualGrossPay - 37000))
  29.     elif 80000 < annualGrossPay <= 180000:
  30.       annualIncomeTax = 17550 + (0.37 * (annualGrossPay - 80000))
  31.     elif annualGrossPay > 180000:
  32.       annualIncomeTax = 54550 + (0.45 * (annualGrossPay - 180000))
  33.     else:
  34.       print "Something has gone wrong"
  35.  
  36.     weeklyIncomeTax = (annualIncomeTax / 52)
  37.     weeklyNetPay = weeklyGrossPay - weeklyIncomeTax
  38.     fortnightlyGrossPay = (weeklyGrossPay * 2)
  39.     fortnightlyIncomeTax = (weeklyIncomeTax * 2)
  40.     fortnightlyNetPay = fortnightlyGrossPay - fortnightlyIncomeTax
  41.     monthlyGrossPay = (annualGrossPay) / 12
  42.     monthlyIncomeTax = annualIncomeTax / 12
  43.     monthlyNetPay = monthlyGrossPay - monthlyIncomeTax
  44.     annualNetPay = annualGrossPay - annualIncomeTax
  45.  
  46.     print ""
  47.    
  48.     print "Your weekly pay is $", weeklyGrossPay
  49.     print "Your fortnightly pay is $" , fortnightlyGrossPay
  50.     print "Your monthly pay is $" , monthlyGrossPay
  51.     print "Your annual pay is $" , annualGrossPay
  52.    
  53.     print ""
  54.  
  55.     print "Your weekly income tax is $", weeklyIncomeTax
  56.     print "Your fortnightly income tax is $" , fortnightlyIncomeTax
  57.     print "Your monthly income tax is $" , monthlyIncomeTax
  58.     print "Your annual income tax is $" , annualIncomeTax
  59.    
  60.     print ""
  61.    
  62.     print "Therefore, you net:"
  63.     print "$",weeklyNetPay,"per week."
  64.     print "$",fortnightlyNetPay,"per fortnight."
  65.     print "$",monthlyNetPay,"per month."
  66.     print "$",annualNetPay,"per annum."
  67.  
  68. def fortnightlyIncome():
  69.    
  70.     print ""
  71.     print "The following calculations will be based on your fortnightly gross income."
  72.     print ""
  73.    
  74.     fortnightlyGrossPay = int(input("How much do you gross per fortnight? "))
  75.     weeklyGrossPay = fortnightlyGrossPay / 2
  76.     annualGrossPay = weeklyGrossPay * 52
  77.  
  78.     if 0 < annualGrossPay <= 6000:
  79.         annualIncomeTax = 0
  80.     elif 6000 < annualGrossPay <= 37000:
  81.       annualIncomeTax = (annualGrossPay - 6000)*0.15
  82.     elif 37000 < annualGrossPay <= 80000:
  83.       annualIncomeTax = 4650 + (0.3 * (annualGrossPay - 37000))
  84.     elif 80000 < annualGrossPay <= 180000:
  85.       annualIncomeTax = 17550 + (0.37 * (annualGrossPay - 80000))
  86.     elif annualGrossPay > 180000:
  87.       annualIncomeTax = 54550 + (0.45 * (annualGrossPay - 180000))
  88.     else:
  89.       print "Something has gone wrong"
  90.  
  91.     weeklyIncomeTax = (annualIncomeTax / 52)
  92.     weeklyNetPay = weeklyGrossPay - weeklyIncomeTax
  93.     #fortnightlyGrossPay = (weeklyGrossPay * 2)
  94.     fortnightlyIncomeTax = (weeklyIncomeTax * 2)
  95.     fortnightlyNetPay = fortnightlyGrossPay - fortnightlyIncomeTax
  96.     monthlyGrossPay = (annualGrossPay) / 12
  97.     monthlyIncomeTax = annualIncomeTax / 12
  98.     monthlyNetPay = monthlyGrossPay - monthlyIncomeTax
  99.     annualNetPay = annualGrossPay - annualIncomeTax
  100.  
  101.     print ""
  102.    
  103.     print "Your weekly pay is $", weeklyGrossPay
  104.     print "Your fortnightly pay is $" , fortnightlyGrossPay
  105.     print "Your monthly pay is $" , monthlyGrossPay
  106.     print "Your annual pay is $" , annualGrossPay
  107.    
  108.     print ""
  109.  
  110.     print "Your weekly income tax is $", weeklyIncomeTax
  111.     print "Your fortnightly income tax is $" , fortnightlyIncomeTax
  112.     print "Your monthly income tax is $" , monthlyIncomeTax
  113.     print "Your annual income tax is $" , annualIncomeTax
  114.    
  115.     print ""
  116.    
  117.     print "Therefore, you net:"
  118.     print "$",weeklyNetPay,"per week."
  119.     print "$",fortnightlyNetPay,"per fortnight."
  120.     print "$",monthlyNetPay,"per month."
  121.     print "$",annualNetPay,"per annum."
  122.  
  123. def monthlyIncome():
  124.    
  125.     print ""
  126.     print "The following calculations will be based on your monthly gross income."
  127.     print ""
  128.    
  129.     monthlyGrossPay = int(input("How much do you gross per month? "))
  130.     weeklyGrossPay = (monthlyGrossPay * 12) / 52
  131.     annualGrossPay = weeklyGrossPay * 52
  132.  
  133.     if 0 < annualGrossPay <= 6000:
  134.         annualIncomeTax = 0
  135.     elif 6000 < annualGrossPay <= 37000:
  136.       annualIncomeTax = (annualGrossPay - 6000)*0.15
  137.     elif 37000 < annualGrossPay <= 80000:
  138.       annualIncomeTax = 4650 + (0.3 * (annualGrossPay - 37000))
  139.     elif 80000 < annualGrossPay <= 180000:
  140.       annualIncomeTax = 17550 + (0.37 * (annualGrossPay - 80000))
  141.     elif annualGrossPay > 180000:
  142.       annualIncomeTax = 54550 + (0.45 * (annualGrossPay - 180000))
  143.     else:
  144.       print "Something has gone wrong"
  145.  
  146.     weeklyIncomeTax = (annualIncomeTax / 52)
  147.     weeklyNetPay = weeklyGrossPay - weeklyIncomeTax
  148.     fortnightlyGrossPay = (weeklyGrossPay * 2)
  149.     fortnightlyIncomeTax = (weeklyIncomeTax * 2)
  150.     fortnightlyNetPay = fortnightlyGrossPay - fortnightlyIncomeTax
  151.     #monthlyGrossPay = (annualGrossPay) / 12
  152.     monthlyIncomeTax = annualIncomeTax / 12
  153.     monthlyNetPay = monthlyGrossPay - monthlyIncomeTax
  154.     annualNetPay = annualGrossPay - annualIncomeTax
  155.  
  156.     print ""
  157.    
  158.     print "Your weekly pay is $", weeklyGrossPay
  159.     print "Your fortnightly pay is $" , fortnightlyGrossPay
  160.     print "Your monthly pay is $" , monthlyGrossPay
  161.     print "Your annual pay is $" , annualGrossPay
  162.    
  163.     print ""
  164.  
  165.     print "Your weekly income tax is $", weeklyIncomeTax
  166.     print "Your fortnightly income tax is $" , fortnightlyIncomeTax
  167.     print "Your monthly income tax is $" , monthlyIncomeTax
  168.     print "Your annual income tax is $" , annualIncomeTax
  169.    
  170.     print ""
  171.    
  172.     print "Therefore, you net:"
  173.     print "$",weeklyNetPay,"per week."
  174.     print "$",fortnightlyNetPay,"per fortnight."
  175.     print "$",monthlyNetPay,"per month."
  176.     print "$",annualNetPay,"per annum."
  177.  
  178. def annualIncome():
  179.    
  180.     print ""
  181.     print "The following calculations will be based on your annual gross income."
  182.     print ""
  183.    
  184.     annualGrossPay = int(input("How much do you gross per annum? "))
  185.  
  186.     if 0 < annualGrossPay <= 6000:
  187.         annualIncomeTax = 0
  188.     elif 6000 < annualGrossPay <= 37000:
  189.       annualIncomeTax = (annualGrossPay - 6000)*0.15
  190.     elif 37000 < annualGrossPay <= 80000:
  191.       annualIncomeTax = 4650 + (0.3 * (annualGrossPay - 37000))
  192.     elif 80000 < annualGrossPay <= 180000:
  193.       annualIncomeTax = 17550 + (0.37 * (annualGrossPay - 80000))
  194.     elif annualGrossPay > 180000:
  195.       annualIncomeTax = 54550 + (0.45 * (annualGrossPay - 180000))
  196.     else:
  197.       print "Something has gone wrong"
  198.    
  199.     weeklyIncomeTax = annualIncomeTax / 52
  200.     weeklyGrossPay = annualGrossPay / 52
  201.     weeklyNetPay = weeklyGrossPay - weeklyIncomeTax
  202.     fortnightlyGrossPay = (weeklyGrossPay * 2)
  203.     fortnightlyIncomeTax = (weeklyIncomeTax * 2)
  204.     fortnightlyNetPay = fortnightlyGrossPay - fortnightlyIncomeTax
  205.     monthlyGrossPay = (annualGrossPay) / 12
  206.     monthlyIncomeTax = annualIncomeTax / 12
  207.     monthlyNetPay = monthlyGrossPay - monthlyIncomeTax
  208.     annualNetPay = annualGrossPay - annualIncomeTax
  209.  
  210.     print ""
  211.    
  212.     print "Your weekly pay is $", weeklyGrossPay
  213.     print "Your fortnightly pay is $" , fortnightlyGrossPay
  214.     print "Your monthly pay is $" , monthlyGrossPay
  215.     print "Your annual pay is $" , annualGrossPay
  216.    
  217.     print ""
  218.  
  219.     print "Your weekly income tax is $", weeklyIncomeTax
  220.     print "Your fortnightly income tax is $" , fortnightlyIncomeTax
  221.     print "Your monthly income tax is $" , monthlyIncomeTax
  222.     print "Your annual income tax is $" , annualIncomeTax
  223.    
  224.     print ""
  225.    
  226.     print "Therefore, you net:"
  227.     print "$",weeklyNetPay,"per week."
  228.     print "$",fortnightlyNetPay,"per fortnight."
  229.     print "$",monthlyNetPay,"per month."
  230.     print "$",annualNetPay,"per annum."
  231.  
  232. def initialQuestion():
  233.     running = True 
  234.     while running:
  235.         initialQuestion = int(input("""Do you want calculations based on your weekly, monthly, or annual pay?
  236.         1. Weekly
  237.         2. Fortnightly
  238.         3. Monthly
  239.         4. Annual
  240.  
  241.         """))
  242.         if initialQuestion == 1:
  243.             weeklyIncome()
  244.             running = False
  245.         elif initialQuestion == 2:
  246.             fortnightlyIncome()
  247.             running = False
  248.         elif initialQuestion == 3:
  249.             monthlyIncome()
  250.             running = False
  251.         elif initialQuestion == 4:
  252.             annualIncome()
  253.             running = False
  254.         else:
  255.             print """
  256.             Please enter the correct number
  257.             """
  258.  
  259. def goodBye():
  260.     print """
  261.     Thanks for trying my program!  
  262.     For more information:
  263.     Please visit my website and blog at clockworkpc.com.au
  264.     OR
  265.     Check out my YouTube channel http://www.youtube.com/user/clockworkpc
  266.     """
  267.  
  268. def finalQuestion():
  269.     running = True
  270.     while running:
  271.         finalQ = int(input("""
  272.        
  273.         Would you like to run another magnificent calculation?
  274.         1. Yes
  275.         2. No
  276.        
  277.         """))
  278.        
  279.         if finalQ == 1:
  280.             initialQuestion()
  281.         elif finalQ == 2:
  282.             goodBye()
  283.             running = False
  284.         else:
  285.             print "Please make a selection"
  286.        
  287. initialQuestion()
  288. finalQuestion()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement