All pastes #1687416 Raw Edit

Anonymous

public text v1 · immutable
#1687416 ·published 2009-11-25 22:54 UTC
rendered paste body
using System;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;

namespace PIT
{
    class Program
    {
        static void Main(string[] args)
        {
            bool error = false;
            string input = "";

            do
            {
                Console.WriteLine("Podaj swoj dochód (np. 1987,43 zł)");
                input = Console.ReadLine();
                input = CatchMoney(input);

                try
                {
                    double data = Convert.ToDouble(input);
                    Console.WriteLine(String.Format("Podatek 2008: {0:C}", pit2008(data)));
                    Console.WriteLine(String.Format("Podatek 2009: {0:C}", pit2009(data)));
                    Console.ReadLine();
                    error = false;
                }
                catch (FormatException)
                {
                    Console.WriteLine("Nie można wykonać konwersji {0}, wprowadzaj tylko liczby i znak przecinka.", input);
                    error = true;
                }
                catch (OverflowException)
                {
                    Console.WriteLine("Nie można wykonać konwersji {0}, wprowadzaj tylko liczby i znak przecinka.", input);
                    error = true;
                }

            } while (error == true);
        }
        
        static double pit2008(double income) 
        {
            if (income < 3089.01)
            {
                return 0;
            }
            else if (income > 3089.00 && income < 44490.01)
            {
                return ((income * 0.19) - 586.85);
            }
            else if (income > 44490.00 && income < 85528.01)
            {
                return 7866.25 + ((income - 44490.00) * 0.3);
            }
            else
            {
                return 20177.65 + ((income - 85528.00) * 0.4);
            }
        }

        static double pit2009(double income)
        {
            if (income < 3091.01)
            {
                return 0;
            }
            else if (income > 3091.00 && income < 85528.01)
            {
                return (income * 0.18) - 556.02;
            }
            else
            {
                return 14839.02 + ((income - 85528.00) * 0.32);
            }
        }
        
        static string CatchMoney (String s)
        {
            Regex r = new Regex("^([0-9,]+)", RegexOptions.Singleline);
            Match m = r.Match(s);

            Group g = m.Groups[1];

            return Convert.ToString(g);
        } 
    }
}