delphi 个人所得税计算函数


本文整理自网络,侵删。

 
//代码有点老,可以调整最新的算法

 

 

function IncomeTaxCalc(const AValues: double): double;

var

  overPays: double;

begin    //  个人所得税计算函数

  {

  按2011年9月1日的最新政策 起征点 3500元

  全月应纳税额不超过1500元 3% 0

  全月应纳税额超过1500元至4500元 10% 105

  全月应纳税额超过4500元至9000元 20% 555

  全月应纳税额超过9000元至35000元 25% 1005

  全月应纳税额超过35000元至55000元 30% 2755

  全月应纳税额超过55000元至80000元 35% 5505

  全月应纳税额超过80000元 45% 13505

  }

  overPays := AValues - 5000;

  if overPays <= 0 then result := 0;

  if (overPays > 0   )  and (overPays <= 1500) then result := overPays * 0.03 - 0;

  if (overPays > 1500)  and (overPays <= 4500)  then result := overPays * 0.1  - 105;

  if (overPays > 4500)  and (overPays <= 9000)  then result := overPays * 0.2  - 555;

  if (overPays > 9000)  and (overPays <= 35000) then result := overPays * 0.25 - 1005;

  if (overPays > 35000) and (overPays <= 55000) then result := overPays * 0.3  - 2755;

  if (overPays > 55000) and (overPays <= 80000) then result := overPays * 0.35 - 5505;

  if (overPays > 80000) then                         result := overPays * 0.45 - 13505;

end;

 

 

function ArcIncomeTaxCalc(const AValues: double): double;

begin

  {

  0    45

  45  345

  345  1245

  12457745

  774513745

  1374522495

  22495 +∞

  }

  if AValues <= 0 then

  begin

    result := 0;  // 不交个税时无法反算工资

    Exit;

  end;

  if (AValues > 0)     and (AValues <= 45)    then result := 3500 + (AValues + 0)     / 0.03;

  if (AValues > 45)    and (AValues <= 345)   then result := 3500 + (AValues + 105)   / 0.1;

  if (AValues > 345)   and (AValues <= 1245)  then result := 3500 + (AValues + 555)   / 0.2;

  if (AValues > 1245)  and (AValues <= 7745)  then result := 3500 + (AValues + 1005)  / 0.25;

  if (AValues > 7745)  and (AValues <= 13745) then result := 3500 + (AValues + 2755)  / 0.3;

  if (AValues > 13745) and (AValues <= 22495) then result := 3500 + (AValues + 5505)  / 0.35;

  if (AValues > 22495)                        then result := 3500 + (AValues + 13505) / 0.45;

end;

 

 

 

 

procedure TForm1.FormCreate(Sender: TObject);

begin

ShowMessage(floattostr(IncomeTaxCalc(13500)));

 

ShowMessage(floattostr(ArcIncomeTaxCalc(1200))); 

end;

 

相关阅读 >>

Delphi listbox防止添加重复

Delphi从内存流中判断图片格式

Delphi中inputbox 和inputquery 函数的使用

Delphi用api设置定时器

获取 ip138 ip 地址

Delphi读取和写入utf-8编码格式的文件

Delphi mediaplayer循环播放mp3所有音乐文件问题?

Delphi idhttp最简洁的修改和取得cookie例子

Delphi请求http接口中文乱码问题

Delphi 双击dbgrid然后得到字段里面的内容

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...