Foxtable(狐表)用户栏目专家坐堂 → 个税算法变了,InTax函数怎么办?


  共有11885人关注过本帖树形打印复制链接

主题:个税算法变了,InTax函数怎么办?

帅哥哟,离线,有人找我吗?
狐狸爸爸
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/8/10 9:18:00 [显示全部帖子]

升级吧,新的版本,个税算法已经改了。

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/8/10 10:42:00 [显示全部帖子]

呵呵,老的已经被新的替换了,会不来了。

 

你可以在全局代码粘贴下面的代码,不过这个计算规则是新版的,你按旧版计算规则改过来,以后即可用InTax2函数计算旧的个人所得税,用法和InTax一样:

 

 

    Public Function InTax2(ByVal x As Double) As Double
        Dim y As Double
        If x > 80000 Then
            y = x * 0.45 - 13505
        ElseIf x > 55000 Then
            y = x * 0.35 - 5505
        ElseIf x > 35000 Then
            y = x * 0.3 - 2755
        ElseIf x > 9000 Then
            y = x * 0.25 - 1005
        ElseIf x > 4500 Then
            y = x * 0.2 - 555
        ElseIf x > 1500 Then
            y = x * 0.1 - 105
        ElseIf x > 0 Then
            y = x * 0.03
        ElseIf x <= 0 Then
            y = 0
        End If
        Return Math.Round(y, 2)
    End Function

[此贴子已经被作者于2011-8-10 10:42:24编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/8/10 10:59:00 [显示全部帖子]

不用的,我已经找出旧版的计算代码了,直接将下面的代码粘贴在全局代码中,即可用InTax2计算旧版个人所得税了,一样很方便的:

 

  Public Function InTax2(ByVal x As Double) As Double
        Dim y As Double
        If x > 100000 Then
            y = x * 0.45 - 15375
        ElseIf x > 80000 Then
            y = x * 0.4 - 10375
        ElseIf x > 60000 Then
            y = x * 0.35 - 6375
        ElseIf x > 40000 Then
            y = x * 0.3 - 3375
        ElseIf x > 20000 Then
            y = x * 0.25 - 1375
        ElseIf x > 5000 Then
            y = x * 0.2 - 375
        ElseIf x > 2000 Then
            y = x * 0.15 - 125
        ElseIf x > 500 Then
            y = x * 0.1 - 25
        ElseIf x > 0 Then
            y = x * 0.05
        ElseIf x <= 0 Then
            y = 0
        End If
        Return Math.Round(y, 2)
    End Function

[此贴子已经被作者于2011-8-10 11:45:38编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/8/11 14:49:00 [显示全部帖子]

其实没有办法两全的,如果我不改这个函数,那么有人会说:麻烦了,现在算出来的个人所得税全部错了,难道我需要重新改代码? 发布后的程序怎么改? foxtable官方为什么不直接按照新税法调整intax函数,偏偏要重新出一个函数,害我要重新修改代码?

[此贴子已经被作者于2011-8-11 14:58:09编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/8/11 17:40:00 [显示全部帖子]

呵呵,这个函数的修改确实早过头了、

 

其实不管新函数还是修改旧函数,始终都有一部分人要修改现有的代码的。

就按照7楼的方法,自己定义一Intax2函数吧,将老项目中的Intax替换为Intax2。

 

或者加个条件判断:

 

if  日期 > #9/1/2011# then

   intax

lse

  intax2

end if


 回到顶部