前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >UGL打印一下劳务个税

UGL打印一下劳务个税

作者头像
Taishan3721
发布2022-12-05 16:02:59
2950
发布2022-12-05 16:02:59
举报
文章被收录于专栏:这里只有VxWorks

又近年关,收入几何?

挣工资要扣税,那打个零工如何计税?

劳务报酬的个人所得税计算方法如下

代码语言:javascript
复制
预扣预缴应纳税所得额 = 劳务报酬(少于4000元) - 800元
预扣预缴应纳税所得额 = 劳务报酬(超过4000元) * 80%
应纳税额 = 应纳税所得额 × 适用税率 - 速算扣除数

应纳税所得额(含税)          税率(%) 速算扣除数
不超过20,000元的部分          20        0
超过20,000元到50,000元的部分   30    2,000
超过50,000元的部分            40    7,000

写个代码,在vx6里使用WindML跑一下

代码语言:javascript
复制
/*
 * 版权所有  公众号  VxWorks567
 */

/* 劳务所得, 个税预扣预缴 */

#include <stdio.h>
#include <ugl/ugl.h>

/* 应纳税所得额 */
#define EXEMPTION        800
#define THRESHOLD       4000
#define PAYABLES        8/10

/* 税率 */
#define TAX_RATE1       2/10
#define TAX_THRESHOLD1 20000
#define TAX_RATE2       3/10
#define DEDUCTION1      2000
#define TAX_THRESHOLD2 50000
#define TAX_RATE3       4/10
#define DEDUCTION2      7000

/* 坐标 */
#define X1                10
#define Y1               760
#define X2              1020
#define Y2                10
#define STEP             100
#define MULTIPLICATION     5
#define TOTAL         (X2-X1)

UINT32 afterTax(UINT32 income)
{
    UINT32 taxable;
    UINT32 tax;

    /* 劳务报酬少于800元时, 应纳税所得额 = 0 */
    if(income <= EXEMPTION)
        {
        taxable = 0.0;
        }
    /* 劳务报酬少于4000元时, 应纳税所得额 = 劳务报酬 - 800元 */
    else if(income <= THRESHOLD)
        {
        taxable = income - EXEMPTION;
        }
    /* 劳务报酬超过4000元时, 应纳税所得额 = 劳务报酬 * 80% */
    else
        {
        taxable = income * PAYABLES;
        }

    /* 应纳税额 = 应纳税所得额 * 适用税率 - 速算扣除数 */

    /* 应纳税所得额不超过20000元时, 税率为20%, 速算扣除数为0 */
    if(taxable < TAX_THRESHOLD1)
        {
        tax = taxable * TAX_RATE1;
        }
    /* 应纳税所得额超过20000元而不足50000元时, 税率为30%, 速算扣除数为2000 */
    else if(taxable < TAX_THRESHOLD2)
        {
        tax = taxable * TAX_RATE2 - DEDUCTION1;
        }
    /* 应纳税所得额超过50000元时, 税率为40%, 速算扣除数为7000 */
    else
        {
        tax = taxable * TAX_RATE3 - DEDUCTION2;
        }
    return income - tax;
    }

void uglTax
    (
    UINT32 multi,   /* 收入增幅为100的倍数 */
    UINT32 printOut /* 是否打印个税金额 */
    )
{
    UGL_REG_DATA *pRegData;
    UGL_GC_ID     gc;

    UINT32 income = 0;
    UINT32 gain;
    UINT32 span;
    UINT32 num;

    uglDisplayOpen(0, 0, 0); 
    pRegData = uglRegistryFind(UGL_DISPLAY_TYPE, 0, 0, 0);
    gc = uglGcCreate((UGL_DEVICE_ID)pRegData->id);

    /* 坐标系 */
    uglForegroundColorSet(gc, 0xffffff);
    uglLine(gc, X1, Y1, X2, Y1);
    uglLine(gc, X1, Y1, X1, Y2);

    if(multi < 1)
        {
        multi = MULTIPLICATION;
        }
    for(num=1; num<TOTAL; num++)
        {
        income += STEP*multi;
        gain = afterTax(income);
        span = num*gain/income;
        uglPixelSet(gc, X1+num, Y1-num, 0xff00);
        uglPixelSet(gc, X1+num, Y1-(UINT32)span, 0xff0000);
        if(printOut != 0)
            {
            printf(" gain(%u)/income(%u) = %.2f%\n",
                gain, income, 100.0*gain/income);
            }
        }
#if 0
    uglGcDestroy(gc);
    uglDisplayClose(0);
#endif
    return;
    }

绿线是税前,红线是税后

总而言之,个税约30%

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-12-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 这里只有VxWorks 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档