个人所得税计算器

简介:
 今天心血来潮,编写了一个个人所得税计算器,呵呵,虽然功能不是很强,而且也是重复造轮子(网上也有许多的个人所得税计算器),不过“纸上得来总觉浅,绝知此事要躬行”,自己动动手绝对有好处的。


下面是个人所得税计算的类:
1namespace SalaryComputer
  2{
   public class PersonalIncomeTax
   {
       字段/属性#region 字段/属性
       /**//// <summary>
       /// 税率
       /// </summary>
       private double[] taxRate = { 0, 0.05, 0.10, 0.15, 0.20, 0.25, 0.30, 0.35, 0.40, 0.45 };
 11        /**//// <summary>
       /// 税率(税率最好保存在数据库表里或xml文件,当国家出台新的个人所得税政策法规时,不需要修改代码部分)
       /// </summary>
       public double[] TaxRate
       {
           get { return taxRate; }
           set { taxRate = value; }
       }
 20        /**//// <summary>
       /// 速算扣除数
       /// </summary>
       private double[] subtractNumber = { 0, 0, 25, 125, 375, 1375, 3375, 6375, 10375, 15375 };
 25        /**//// <summary>
       ///  速算扣除数
       /// </summary>
       public double[] SubtractNumber
       {
           get { return subtractNumber; }
           set { subtractNumber = value; }
       }
 34        /**//// <summary>
       /// 超过起征税的数额
       /// </summary>
       private double[] surpassAmount = { 0, 500, 2000, 5000, 20000, 40000, 60000, 80000, 100000 };
 39        /**//// <summary>
       /// 超过起征税的数额
       /// </summary>
       public double[] SurpassAmount
       {
           get { return surpassAmount; }
           set { surpassAmount = value; }
       }
 48        /**//// <summary>
       /// 征税起点工资
       /// </summary>
       private double startTaxSalary;
 53        /**//// <summary>
       ///  征税起点工资
       /// </summary>
       public double StartTaxSalary
       {
           get { return startTaxSalary; }
           set { startTaxSalary = value; }
       }
       #endregion
 63        构造函数#region 构造函数
       /**//// <summary>
       /// 无参构造函数
       /// </summary>
       public PersonalIncomeTax()
       {
           StartTaxSalary = 2000;
       }
 72        /**//// <summary>
       /// 征税基本工资有时会随国家政策,法律变更
       /// </summary>
       /// <param name="baseSalary">征税基本工资</param>
       public PersonalIncomeTax(double taxSalary)
       {
           StartTaxSalary = taxSalary;
       }
       #endregion
 82        自定义方法#region 自定义方法
       /**//// <summary>
       /// 计算个人所得税,返回应缴税收,征税后所得薪水
       /// </summary>
       /// <param name="Salary">薪水</param>
       /// <param name="Welfare">五险一金数额</param>
       /// <param name="IsChinaNationality">是否是中国国籍</param>
       /// <param name="taxedSalary">税后所得实际工作</param>
       /// <returns>返回个人所得税</returns>
       public double CalculatePersonTax(double Salary, double Welfare, bool IsChinaNationality, out double taxedSalary)
       {
           double RateSalary = 0;
 95            RateSalary = Salary - StartTaxSalary - Welfare;
 97            if (!IsChinaNationality)
           {
               RateSalary = RateSalary - 3000;
           }
102            int rateIndex = 0;
104            if (RateSalary >= 0)
           {
               for (int index = 0; index < SurpassAmount.Length; index++)
               {
                   if (RateSalary >= SurpassAmount[index] && RateSalary <= SurpassAmount[index + 1])
                   {
                       rateIndex = index + 1;
                       break;
                   }
               }
           }
116            double rate = RateSalary * TaxRate[rateIndex] - SubtractNumber[rateIndex];
           taxedSalary = Salary - Welfare - rate;
119            return rate;
       }
122        #endregion
   }
124}
125


相关文章
|
8天前
|
前端开发 JavaScript
使用html+css+javaScript 完成计算器
使用html+css+javaScript 完成计算器
|
4月前
leetcode-224:基本计算器
leetcode-224:基本计算器
16 0
|
5月前
|
Java Android开发
Java实现月工资个人所得税及各保险计算问题
Java实现月工资个人所得税及各保险计算问题
33 0
|
10月前
|
开发工具 Python
【每周一坑】鸡兔同笼 +【解答】房贷计算器
附加题:输入头数 m 和脚数 n,输出鸡的数量 c 和兔子的数量 r,或提示无解。
|
12月前
|
算法
lougu 2485计算器(BSGS)
lougu 2485计算器(BSGS)
110 0
|
12月前
R7-3 计算个人所得税
R7-3 计算个人所得税
93 0
|
前端开发
一个很简易的计算器
一个很简易的计算器
73 0
一个很简易的计算器
函数小试题-计算器
函数小试题-计算器
84 0
|
C语言
练习11—计算器实现
练习11—计算器实现
练习11—计算器实现