本文共 2914 字,大约阅读时间需要 9 分钟。
1namespace SalaryComputer 2{ public class PersonalIncomeTax { 字段/属性#region 字段/属性 /**/// 税率 /// private double[] taxRate = { 0, 0.05, 0.10, 0.15, 0.20, 0.25, 0.30, 0.35, 0.40, 0.45 }; 11 /**/// 税率(税率最好保存在数据库表里或xml文件,当国家出台新的个人所得税政策法规时,不需要修改代码部分) /// public double[] TaxRate { get { return taxRate; } set { taxRate = value; } } 20 /**/// 速算扣除数 /// private double[] subtractNumber = { 0, 0, 25, 125, 375, 1375, 3375, 6375, 10375, 15375 }; 25 /**/// 速算扣除数 /// public double[] SubtractNumber { get { return subtractNumber; } set { subtractNumber = value; } } 34 /**/// 超过起征税的数额 /// private double[] surpassAmount = { 0, 500, 2000, 5000, 20000, 40000, 60000, 80000, 100000 }; 39 /**/// 超过起征税的数额 /// public double[] SurpassAmount { get { return surpassAmount; } set { surpassAmount = value; } } 48 /**/// 征税起点工资 /// private double startTaxSalary; 53 /**/// 征税起点工资 /// public double StartTaxSalary { get { return startTaxSalary; } set { startTaxSalary = value; } } #endregion 63 构造函数#region 构造函数 /**/// 无参构造函数 /// public PersonalIncomeTax() { StartTaxSalary = 2000; } 72 /**/// 征税基本工资有时会随国家政策,法律变更 /// /// 征税基本工资 public PersonalIncomeTax(double taxSalary) { StartTaxSalary = taxSalary; } #endregion 82 自定义方法#region 自定义方法 /**/// 计算个人所得税,返回应缴税收,征税后所得薪水 /// /// 薪水 /// 五险一金数额 /// 是否是中国国籍 /// 税后所得实际工作 ///返回个人所得税 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
转载地址:http://zluml.baihongyu.com/