zl程序教程

您现在的位置是:首页 >  其它

当前栏目

个人所得税计算器

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


下面是个人所得税计算的类:
1namespace SalaryComputer

 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

125



p /p pre code_snippet_id= 583882 snippet_file_name= blog_20150119_1_5116542 name= code "author-img" src="https://ucc.alicdn.com/avatar/img_4ef14db93886a6ec606ba64fc46212fe.jpg?x-oss-process=image/resize,h_150,m_lfit" />
潇湘隐者 网名潇湘隐者/潇湘剑客、英文名Kerry,兴趣广泛,广泛涉猎,个性随意,不善言辞。执意做一名会写代码的DBA,混迹于IT行业