相关文章推荐
大气的大蒜  ·  Django ...·  1 年前    · 
慷慨的葡萄酒  ·  wait cmd bat-掘金·  2 年前    · 
忐忑的围巾  ·  Vue ...·  2 年前    · 
备案 控制台
学习
实践
活动
专区
工具
TVP
写文章
专栏首页 这里只有VxWorks UGL打印一下劳务个税
1 0

海报分享

UGL打印一下劳务个税

又近年关,收入几何?

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

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

预扣预缴应纳税所得额 = 劳务报酬(少于4000元) - 800元
预扣预缴应纳税所得额 = 劳务报酬(超过4000元) * 80%
应纳税额 = 应纳税所得额 × 适用税率 - 速算扣除数
应纳税所得额(含税)          税率(%) 速算扣除数
不超过20,000元的部分          20        0
超过20,000元到50,000元的部分   30    2,000
超过50,000元的部分            40    7,000

写个代码,在vx6里使用WindML跑一下 /* 劳务所得, 个税预扣预缴 */ #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% */ 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 */ 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; }

绿线是税前,红线是税后