个人所得税计算器

一直以来工资被扣税都不知道怎么算的,查了一下资料发现笔算起来挺麻烦的(每次都要对着表弄),于是做一个小程序代劳。
(使用2008年3月生效的2000起征点)


主代码如下:

// 计算个人所得税按钮单击事件
         private   void  button2_Click( object  sender, EventArgs e)
        {
            
if  (t_wage.Text.Trim().Length  ==   0 )
                
return ;
            
// 工资上缴个人所得税表  (工资-2000) 之后的起始、终止、税率、减除额
            ArrayList taxTables  =   new  ArrayList();
            taxTables.Add(
new  TaxTable( 0 500 5 0 ));
            taxTables.Add(
new  TaxTable( 500 2000 10 25 ));
            taxTables.Add(
new  TaxTable( 2000 5000 15 125 ));
            taxTables.Add(
new  TaxTable( 5000 20000 20 , 375 ));
            taxTables.Add(
new  TaxTable( 20000 40000 25 1375 ));
            taxTables.Add(
new  TaxTable( 40000 , 60000 30 3375 ));
            taxTables.Add(
new  TaxTable( 60000 80000 35 6375 ));
            taxTables.Add(
new  TaxTable( 80000 100000 40 10375 ));
            taxTables.Add(
new  TaxTable( 100000 double .MaxValue,  45 15375 ));
            msg.ForeColor 
=  Color.Tomato;
            
try
            {
                
double  wage  =   double .Parse(t_wage.Text);
                
double  wage_Tax = wage - 2000 ;
                
double  tax = 0 ;
                
foreach  (TaxTable tb  in  taxTables)
                {
                    
if (wage_Tax > tb.tax_low && wage_Tax <= tb.tax_up)
                    {
                        tax 
=  wage_Tax  *  tb.taxRate  /   100   -  tb.deduct;
                        
break ;
                    }
                }
                
double  remain  =  wage  -  tax;
                msg.Text 
=   " 税前工资: "   +  t_wage.Text  +   " 元\r\n "   +
                 
" 税后工资: "   +  remain.ToString()  +   " 元\r\n "   +
                 
" 应交个人所得税: "   +  tax.ToString()  +   " " ;
            }
            
catch  (Exception ex)
            {
                msg.Text 
=  ex.Message;
            }
        }
        
///   <summary>
        
///  存放个人所得税税率表的类
        
///   </summary>
         class  TaxTable
        {
            
public   double  tax_low;  // 工资-2000后
             public   double  tax_up;   // 工资-2000后
             public   int  taxRate;     // 取值范围0--100
             public   int  deduct;      // 减除额
             public  TaxTable( double  Ptax_low,  double  Ptax_up,  int  PtaxRate,  int  Pdeduct)
            {
                tax_low 
=  Ptax_low;
                tax_up 
=  Ptax_up;
                taxRate 
=  PtaxRate;
                deduct 
=  Pdeduct;
            }
        }


要是有需要又懒得自己实现,这里有下载:

源码下载: Code    演示版(可当小工具使用): Demo

你可能感兴趣的:(计算器)