居民个人综合所得预扣预缴税款的计算方法javascript源码

神马?新版个税太难算了?下面的代码帮助你一步完成

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
工资:<input type="text" id="sallery-input" />
专项扣除:<input type="text" id="diff-input" />


<input type="button" value="计算" onclick="gogogo()">


<div>
    五险一金:<span id="five-risk-one-gold"></span>
    <br>
    每月缴税
    <ul id="tax-list">

    </ul>
</div>

<script>
    function getPercent(remain) {
        if(remain<=36000) {
            return [0,0.03];
        } else if(remain>36000 && remain<=144000) {
            return [2520,0.1];
        } else if(remain>144000 && remain<=300000) {
            return [16920,0.2];
        } else if(remain>300000 && remain<=420000) {
            return [31920,0.25];
        } else if(remain>420000 && remain<=660000) {
            return [31920,0.3];
        } else if(remain>660000 && remain<=960000) {
            return [85920,0.35];
        } else if(remain>960000) {
            return [181920,0.45];
        }
    }
    function sumArray(array) {
        var total = 0;
        array.forEach(function(tax){
            total += tax;
        });
        return total;
    }
    function gogogo() {
        var sallery = parseInt(document.getElementById('sallery-input').value);
        var base = 5000;
        var diff = parseInt(document.getElementById('diff-input').value);
        var fiveRiskBase = [4279, 21396];
        var oneGold = [2300, 21400.00];
        var fiverRiskForTax = sallery;
        if (sallery < fiveRiskBase[0]) {
            fiverRiskForTax = fiveRiskBase[0];
        } else if (sallery > fiveRiskBase[1]) {
            fiverRiskForTax = fiveRiskBase[1]
        }
        var fiveRiskTaxList = [fiverRiskForTax * 0.08, fiverRiskForTax * 0.02, fiverRiskForTax * 0.005, fiverRiskForTax * 0.002, fiverRiskForTax * 0.01];
        var fiveRiskTax = sumArray(fiveRiskTaxList);
        var oneGoldForTax = sallery;
        if (sallery < oneGold[0]) {
            oneGoldForTax = oneGold[0];
        } else if (sallery > oneGold[1]) {
            oneGoldForTax = oneGold[1]
        }
        var oneGoldTax = oneGoldForTax * 0.07;
        var fiveRiskOneGold = fiveRiskTax + oneGoldTax;
        console.log('五险:', fiveRiskTaxList);
        console.log('一金:', oneGoldTax);
        var fivOneString = '五险' + fiveRiskTaxList.join(',') + '公积金:' + oneGoldTax
        document.getElementById("five-risk-one-gold").innerHTML = fivOneString;
        var tax = [];
        var taxListString = '';
        for (var i = 1; i <= 12; i++) {
            var currentMonthRemain = (sallery - (fiveRiskOneGold + diff + base)) * i;
            console.log(i, currentMonthRemain);
            var taxPercentInfo = getPercent(currentMonthRemain);
            tax[i] = currentMonthRemain * taxPercentInfo[1] - taxPercentInfo[0] - sumArray(tax);
            taxListString += '<li>' + i + '月:' + tax[i] + '</li>';
        }
        console.log(tax);
        document.getElementById("tax-list").innerHTML = taxListString;
    }
</script>



</body>

</html>

五险一金采用上海算法,非上海的同学改下即可使用

https://github.com/suxianbaozi/personal-tax

猜你喜欢

转载自blog.csdn.net/qiushi888/article/details/85320683
今日推荐