如何计算个人所得税?可以参考的11个标准计算工资的步骤,不足之处请补充

希望能给大家带来帮助,请只做参考用,主要是请看11个计算的步骤注释说明。

 1           ///   <summary>
 2           ///  计算工资算法
 3           ///   </summary>
 4           ///   <param name="departmentID"> 部门主键 </param>
 5           ///   <param name="targetYearMonth"> 目标年月 </param>
 6           ///   <returns> 影响的行数 </returns>
 7           public   int  Calculate(String departmentID, String targetYearMonth)
 8          {
 9               int  returnValue  =   0 ;
10              BaseParameterDao parameterDao  =   new  BaseParameterDao( this .DbHelper,  this .UserInfo);
11              String qiZhengE  =  parameterDao.GetParameter( " System " " SalaryPersonalIncomeTax " " QiZhengE " );
12              String year  =  targetYearMonth.Substring( 0 4 );
13              String month  =  targetYearMonth.Substring( 5 );
14              DataTable dataTable  =   this .SearchByDepartment(departmentID, year, month,  false );
15               //  01 检查个人所得税起征额是否为空的?
16               this .CheckPersonalIncomeTax(dataTable, qiZhengE);
17               //  02 税前应加项合计
18               this .GetSum(dataTable,  " 税前应加项目 " , BaseSalaryTable.FieldShuiQianYingJiaXiang);
19               //  03 税前应扣项合计
20               this .GetSum(dataTable,  " 税前应扣项目 " , BaseSalaryTable.FieldShuiQianYingKouXiang);
21               //  04 基金补贴保险类合计,例如三金
22               this .GetSum(dataTable,  " 基金保险补贴类 " , BaseSalaryTable.FieldJiJinBaoXianBuTieLei);
23               //  05 纳税项合计[记税工资,是否纳税项目来计算]
24               this .GetSalaryTax(dataTable);                     
25               //  06 计算个人所得税相关数据
26               this .GetPersonalIncomeTax(dataTable);
27               //  07 计算应发工资
28               this .GetSalary(dataTable);
29               //  08 计算税后应扣项目
30               this .GetSum(dataTable,  " 税后代加项目 " , BaseSalaryTable.FieldShuiHouDaiJiaXiang);
31               //  09 计算税后应加项目
32               this .GetSum(dataTable,  " 税后代扣项目 " , BaseSalaryTable.FieldShuiHouDaiKouXiang);
33               //  10 计算实发工资
34               this .GetRealSalary(dataTable);
35               //  11 将计算结果保存到数据库
36              BaseSalaryEntity salaryEntity  =   null ;
37              BaseSalaryDao salaryDao  =   new  BaseSalaryDao( this .DbHelper,  this .UserInfo);
38               foreach  (DataRow dataRow  in  dataTable.Rows)
39              {
40                   if  (dataRow.RowState  ==  DataRowState.Modified)
41                  {
42                      salaryEntity  =   new  BaseSalaryEntity(dataRow);
43                      returnValue  +=  salaryDao.UpdateEntity(salaryEntity);
44                  }
45              }
46               return  returnValue;
47          }
48 
将权限管理、工作流管理做到我能力的极致,一个人只能做好那么很少的几件事情。

posted on 2009-05-03 11:34 不仅仅是通用权限设计 阅读(1679) 评论(15) 编辑 收藏

#1楼   回复  引用  查看    
你今天把首页承包了得了。

反正近期发的人也少,就承包给你吧。


我觉得你应该把各步的公式都写出来,那个才是有用的……

2009-05-03 11:43 | 杜建宇       

#2楼[楼主]  回复 引用 查看   

休息在家里也没事情干,所以多写了几个帖子,大家见谅,
平时忙项目也没心情写blog,大家也消消气。
我看到,如何计算应缴个人所得税? 使用SQL,理解SQL
http://www.cnblogs.com/Chinese-xu/archive/2009/05/03/1448036.html
大家都对这个很有兴趣嘛,反映也积极,所以写了以上的帖子,
其实,现在不流行,用一个超级复杂的sql语句把非常复杂的预算都搞定了,
因为这个超级复杂的sql语句实在是不好维护,甚至过了一段时间,写这个
SQL语句的人自己也不懂当时是怎么写的,后期也不好维护这个超级变态的
东西。
现在流行的是,面向对象变成,可以把这复杂的步骤分解成N个方法,
然后都用一个个简单的方法,就把一个复杂的过程搞定了,
例如,你的个人所得税征收表,没有存在数据库里,存在xml文件里了,
你还能写sql语句吗?数据库里根本就没这个表,以上是面向对象编程的
一个思想之一,分解成若干个易于理解的步骤,别人都好调试好理解,
摆脱了对数据库的过于依赖。都是很清晰的一个个处理步骤,菜鸟也容
易修改维护系统了。

我们不能指望新手能写出超级复杂的sql语句,但是能指望他有条有理的分步骤
把一个复杂的任务分解成N个简单的任务,然后顺利完成每个简单的小步骤。
这也是这几年我的深刻体会,对软件项目认识的明显提高之处。
2009-05-03 11:51 | 吉日嘎拉       

#3楼  回复 引用   

自从微软的.net2。0出来泛幸list,就很少用datatablse dataset,习惯datatable的应该还是用1.1的时候用习惯了吧,也说明这些年你没有与时俱进呀

.哦,在批量更新的时候还得用一下table,不过不是你的循环方式,个人认为,循环批量更新是很糟糕的写法


面向对象的3个特点 封装 继承 多态

跟数据是存放到数据库或者xml来说没什么影响

ps:我今年大3
2009-05-03 12:17 | matz[未注册用户]

#4楼  回复 引用   

对你来说,我就是新人,可是看了lz的博客,我变自信了,多开发5年又如何
2009-05-03 12:21 | matz[未注册用户]

#5楼  回复 引用 查看   

不过也不能啥东西都不放到数据库啊?

面向对象不是用来摆脱对数据库的依赖的

吧一个大问题分解成若干个易于理解的步骤才是面向对象希望大家都去做的。
并且,这些步骤要正确封装到合适的对象里
2009-05-03 12:23 | 徐少侠       

#6楼  回复 引用 查看   

@matz
自从泛型啥的出来以后

程序里的if和for是越用越少了
2009-05-03 12:25 | 徐少侠       

#7楼[楼主]  回复 引用 查看   

承认,应该用泛型,
狡辩一下,此贴不是为了表明技术,是为了
表达计算 计算工资的步骤。

但是我还是虚心学习,多谢 徐少侠的指点, 我听进去了。
2009-05-03 14:40 | 吉日嘎拉       

#8楼[楼主]  回复 引用 查看   

我也的确是从.NET1.1开始的,你说得很有道理。
2009-05-03 14:41 | 吉日嘎拉       

#9楼  回复 引用 查看   

这东西会计会给你算好的,不会少扣你的。
话说我们的税都被拿去XXXX了
2009-05-03 16:14 | 风海迷沙       

#10楼[楼主]  回复 引用 查看   

犹豫我们的老会计总是算不好,被我们公司炒鱿鱼了,
现在我们也在为客户做薪资管理模块,也需要我们程序自动计算,
不需要 会计自己算了,省事一些。
2009-05-03 17:20 | 吉日嘎拉       

#11楼  回复 引用 查看   

有个人类会计的话,很多帐会好算点

如果每个公司都是电脑会计,税务局是高兴了。老总不一定都高兴的。

曾经听过这么一个故事:
外国财务软件公司到中国来投标项目,会后中方企业老总说老外的东西不行。
老外的销售那个急啊?一定要问哪里不好!
“你们的财务系统能做几套帐啊?我们这里至少要做5套的。”
“税务局、工商局、当地政府、媒体,最后自己还要有一套,最好是能有.....”
“唉,你怎么!”
老外的销售已经晕了

呵呵
2009-05-03 20:07 | 徐少侠       

#12楼  回复 引用 查看   

凡是需要写注释的地方,都用一个方法调用来代替注释,方法体是原来需要注释的代码,方法名是原来的注释。
这样你就不用写注释了,代码也就干净了。
2009-05-03 20:26 | Nick Wang       

#13楼  回复 引用   

--引用--------------------------------------------------
matz: 对你来说,我就是新人,可是看了lz的博客,我变自信了,多开发5年又如何
--------------------------------------------------------
谦虚是美德,你没开发过5年,很多东西就硬比不上。你说别人要一个经验5年上的,还是要你?做项目,就是靠做。光扛着一头跑,没用。
2009-05-04 10:05 | 汉子进墙[未注册用户]

#14楼  回复 引用   

--引用--------------------------------------------------
matz: 对你来说,我就是新人,可是看了lz的博客,我变自信了,多开发5年又如何
--------------------------------------------------------
用不着发表这些东西,等你工作5年后是什么样子!
2009-05-04 14:38 | 看不惯[未注册用户]

#15楼[楼主]  回复 引用 查看   

估计他工作5年后:
能买个顶级宝马车加别野,或者开发出中国第一套操作系统,或者数据库系统,
或者是全中国最牛B的管理软件,或者世界流行的开发语言。

我可怜的老爸当了40年教师,现在还是退休教师,若像我们搞IT的,
第一年是助理工程师,第二年是程序员,第三年是高级程序员
第四年系统架构师,第五年项目精力,第六年公司的老板,

我老板按这个发展,现在应该是接近国家主席才对。
我也是主席的儿子了,也牛了,不用这么辛苦写程序混饭吃了。
Python个税计算器可以通过以下步骤计算个人所得税: 1. 首先,确定个人的税前收入金额。 2. 根据国家的个税税率表,确定适用的税率和速算扣除数。个税税率表可以在国家税务局的官方网站上找到。 3. 根据税率和速算扣除数,计算应纳税所得额。应纳税所得额等于税前收入减去起征点(一般为5000元)。 4. 根据应纳税所得额和适用的税率,计算应缴纳的个人所得税金额。个人所得税金额等于应纳税所得额乘以适用税率再减去速算扣除数。 5. 最后,计算税后收入。税后收入等于税前收入减去个人所得税金额。 下面是一个简单的Python代码示例,用于计算个人所得税: ```python def calculate_income_tax(income): threshold = 5000 # 起征点 tax_rates = [0.03, 0.1, 0.2, 0.25, 0.3, 0.35, 0.45] # 税率 quick_deductions = [0, 105, 555, 1005, 2755, 5505, 13505] # 速算扣除数 taxable_income = income - threshold # 应纳税所得额 if taxable_income <= 0: return 0 for i in range(len(tax_rates)): if taxable_income <= 0: return tax_amount if taxable_income <= 1500: tax_amount = taxable_income * tax_rates[i] - quick_deductions[i] else: tax_amount = 1500 * tax_rates[i] - quick_deductions[i] taxable_income -= 1500 return tax_amount income = float(input("输入税前收入金额:")) tax = calculate_income_tax(income) after_tax_income = income - tax print("个人所得税金额:", tax) print("税后收入金额:", after_tax_income) ``` 注意,以上代码仅为示例,实际个税计算可能会有更复杂的规则和计算方式。在实际使用时,建议参考国家税务局的相关规定和税率表进行计算
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值