个人所得税计算

个人所得税计算公式与依据:
应纳个人所得税税额=(应纳税所得-扣除标准)*适用税率-速算扣除数
扣除标准1600元/月。 (2008年3月1日起为2000)
不超过500元的,税率5%,速算扣除数为0;
超过500元至2000元的部分,税率10%,速算扣除数为25
超过2000元至5000元的部分,税率15 %,速算扣除数为125
超过5000元至20000元的部分,税率20 %,速算扣除数为375
超过20000元至40000元的部分,税率25%,速算扣除数为1375
超过40000元至60000元的部分,税率30%,速算扣除数为3375
超过60000元至80000元的部分,税率35%,速算扣除数为6375
超过80000元至100000元的部分,税率40%,速算扣除数为10375
超过100000元的部分,税率45%,速算扣除数为15375

 

 

写了一个小程序计算:

首先是一个参数定义类:

package corejava;

public class TaxParameter {
 private final double baseRate = 0.05;
 private final int levelNum = 9;
 private final double amountArray[] = {500,2000,5000,20000,40000,60000,80000,100000} ;
 private double freeAmount = 1600;
 public double[] getAmountArray() {
  return amountArray;
 }
 public double getBaseRate() {
  return baseRate;
 }
 public double getFreeAmount() {
  return freeAmount;
 }
 public void setFreeAmount(double freeAmount){
  this.freeAmount = freeAmount;
 }
 public int getLevelNum() {
  return levelNum;
 }
}

 

 

操作类:

package corejava;
/**
 *
 * @author unya
 * @version 1.0
 * @category  工资收入税收计算
 * @see 国家税务总局关于工资薪金所得计算缴纳个人所得税政策衔接问题的通知
 * @see 国税发[2005]196号
 */
public class IndivadualIncomeTax {
 TaxParameter para = new TaxParameter();
 public double getSource(double income){
  return income - para.getFreeAmount();
 }
 public double getTax(double income) throws Exception{
  double source = getSource(income);
  System.out.println("纳税工资:"+source);
  double revenue = 0;//记录税额
  double[] amountArray = para.getAmountArray();
  double baseRate = para.getBaseRate();
  for(int i=0; i<para.getLevelNum(); i++){
   double levelRate = 0;
   double levelAmount = 0;
   double margin = amountArray[i]-(i==0?0:amountArray[i-1]);
   if(source <= amountArray[i]){
    levelAmount = source;
    levelRate = levelAmount*baseRate*(i+1);
    revenue = revenue + levelRate;
    source = source - margin;
    System.out.println("level "+(i+1)+" amount:\t" + levelAmount+ "\t rate: \t" + levelRate );
    break;
   }else if(source > amountArray[i]){
    levelAmount = margin;
    levelRate = levelAmount*baseRate*(i+1);
    revenue = revenue + levelRate;
    source = source - margin;
    System.out.println("level "+(i+1)+" amount:\t" + levelAmount+ "\t rate: \t" + levelRate );
   }
  }
  System.out.println("Month's Totle Rate Amount:\t"+ revenue);
  return revenue;
 }
 public static void main(String[] args) throws Exception {
  System.out.println((new IndivadualIncomeTax()).getTax(100000));
 }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值