劳务报酬所得税java程序计算

2019年1月1日起,将劳务报酬、稿酬、特许权使用费等三项所得与工资薪金合并起来计算纳税,并实行专项附加扣除。
对于个人,你可能有劳动报酬所得,需要知道劳动报酬是怎么计税的;
或者工作中,有些项目需要按劳动报酬计税,也需要知道怎么计算。

劳务报酬定义

那么,哪些日常收入属于劳务报酬呢?

劳务报酬所得,是指个人从事设计、装潢、安装、制图、化验、测试、医疗、法律、会计、咨询、讲学、新闻、广播、翻译、审稿、书画、雕刻、影视、录音、录像、演出、表演、广告、展览、技术服务、介绍服务、经纪服务、代办服务以及其他劳务取得的所得。

计算方式

提醒:劳务报酬所得,每次收入不超过四千元的,减除费用八百元;四千元以上的,减除百分之二十的费用,其余额为应纳税所得额。然后适用比例税率,税率为百分之二十。

税率表

对劳务报酬所得一次收入,适用以下税率表:
在这里插入图片描述

计算方式理解

假设税前收入为x,应纳税所得额为y,速扣系数指的是按下一个阶梯税率计算时,会多扣除上面阶梯的金额,所以应该回补部分金额。

  • 税率适应于应纳税所得额,而不是税前总收入。
  • 收入小于等于800部分,不计税。
  • 收入大于800且小于等于4000的部分,应纳税所得额为x-800。
  • 收入大于等于4000部分,应纳税所得额为0.8x。
  • 应纳税所得额小于等于20000,适用于税率20%。
  • 应纳税所得额大于20000且小于等于50000,适用于税率30%,速扣系数2000。
  • 应纳税所得额大于50000,适用于税率40%,速扣系数7000。

代码

public class IncomeTaxUtils {
    /**
     * 小数点后保留位数,2位,四舍五入
     */
    private static final int DIGIT_NUMBER_AFTER_DOT = 2;

    /**
     * 劳务报酬所得,每次收入不超过四千元的,减除费用八百元;四千元以上的,减除百分之二十的费用,其余
     * 额为应纳税所得额。然后适用比例税率,税率为百分之二十。
     *
     * |收入(x)         |应纳税部分(y)     |   阶梯         |税率        | 纳税额           | 速扣系数     |
     * -----------------------------------------------------------------------------------------------
     * |x<=800         |      0       |     0             |  0        | 0               | 0           |
     * |800<x<=4000    |    x-800     |    y<=20000       |  20%      | (x-800)*20%     | 0           |
     * |4000<x<=20000  |    0.8x      |    y<=20000       |  20%      | 0.8x*20%        | 0           |
     * |20000<x<=50000 |    0.8x      |    20000<y<=50000 |  30%      | 0.8x*30%        | 2000        |
     * |x>50000        |    0.8x      |    y>50000        |  40%      | 0.8x*40%        | 7000        |
     *
     * @param originIncome
     * @return
     */
    public static double incomeAfterTax(double originIncome) {
        //应纳税部分
        double taxIncome = 0;
        double taxRate = 0;
        double quickDeducData = 0;
        if (originIncome <= 800) {
            return originIncome;
        } else if (originIncome > 800 && originIncome <= 4000) {
            taxIncome = originIncome - 800;
            taxRate = 0.2;
        }
        if (originIncome > 4000) {
            taxIncome = originIncome * 0.8;
        }
        if (taxIncome <= 20000) {
            taxRate = 0.2;
        } else if (taxIncome > 20000 && taxIncome <= 50000) {
            taxRate = 0.3;
            quickDeducData = 2000;
        } if (taxIncome > 50000) {
            taxRate = 0.4;
            quickDeducData = 7000;
        }
        double incomeAfterTax = originIncome - (taxIncome * taxRate - quickDeducData);
        return roundHalfUpValue(incomeAfterTax, DIGIT_NUMBER_AFTER_DOT);
    }

    private static double roundHalfUpValue(double value, int digitNumberAfterDot) {
        BigDecimal bigDecimal = new BigDecimal(value);
        return bigDecimal.setScale(digitNumberAfterDot, BigDecimal.ROUND_HALF_UP).doubleValue();
    }

    public static void main(String[] args) {
        double[] array = {799, 800, 2300, 4000, 8000, 20000, 21000, 30000, 50000, 80000, 28947.37, };
        for (double arr: array) {
            double value = incomeAfterTax(arr);
            System.out.println("income:" + arr +  "  after tax:"+ value);
        }
        double value = 1.2567;
        System.out.println(roundHalfUpValue(value, DIGIT_NUMBER_AFTER_DOT));
    }
}

对于个人所得税或其他税收计算其实也是类似的,只需要修改速扣系数和对应税率即可。
当前个人所得税按照年收入来计算,后面会再讲一下个人所得税是怎么算的。

发布了35 篇原创文章 · 获赞 81 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/chanllenge/article/details/90670549