⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 taxcomputer.java

📁 一个计算个人所得税的Java程序
💻 JAVA
字号:
package iitax;

import java.util.ArrayList;

public class TaxComputer {   
    /**
     * 根据税率表, 起征点, 个人收入计算应该缴纳的个人所得税
     * @param taxRateList  税率表
     * @param startingPoint 个税起征点
     * @param income  个人收入
     * @return 应该缴纳的个税值
     */
    public static double compute(ArrayList taxRateList, double startingPoint, double income){
        if(income > Constants.MAX_INCOME) return -1;
        
        double tax = 0.0D;  //tax用于存储中间及最终的税值.        
        double temp = income - startingPoint; //temp 用于存储要交税的那部分收入        
        
        if(temp <= 0) return 0.0D;  //要交税的收入小于0, 交税额为0
        
        /*
         * 算法如下:
         * 1. if语句用于判断输入收入值减去起征点后值之后处于哪个税率项(确定范围).
         * 2. 确定范围之后对于,小于这个税项的其它项都要收全值(该项的跨度*该项的税率值).
         * 3. 最后加上,处于被确定范围部分的税率值.
         */        
        for(int i=0; i<taxRateList.size(); i++){
            if(((TaxItem)taxRateList.get(i)).getTaxStartPoint()<temp
                      && ((TaxItem)taxRateList.get(i)).getTaxEndPoint()>temp){
                 for(int j=0; j<i; j++){
                     TaxItem ti = (TaxItem)taxRateList.get(j);
                     tax += (ti.getTaxEndPoint() - ti.getTaxStartPoint()) * ti.getTaxRate();
                 }
                 TaxItem iTi = (TaxItem)taxRateList.get(i);
                 tax += (temp - iTi.getTaxStartPoint()) * iTi.getTaxRate();
                 return tax;
            }            
        }
        
        return -1;
    }
    
    /**
     * 测试函数
     * @param args
     */
    public static void main(String[] args) {
        ArrayList list = new ArrayList();
        list.add(new TaxItem(0, 500, 0.05));
        list.add(new TaxItem(500, 2000, 0.10));
        list.add(new TaxItem(2000, 5000, 0.15));
        list.add(new TaxItem(5000, 20000, 0.20));
        list.add(new TaxItem(20000, 0.25));        
        System.out.println(compute(list, 1000, 2700));
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -