2019年个税计算器
1. 业务
1.1 月薪个人所得税
2019年的个税制度改得比较复杂,每个月交的都不一样,前面交得少,后面交得多。
- 个人所得税年度预扣税表
居民个人工资、薪金所得预扣预缴适用
级数 | 累计预扣预缴应纳税所得额 | 预扣率(%) | 速算扣除数 |
---|---|---|---|
1 | 不超过36000元的部分 | 3 | 0 |
2 | 超过36000元至144000元的部分 | 10 | 2520 |
3 | 超过144000元至300000元的部分 | 20 | 16920 |
4 | 超过300000元至420000元的部分 | 25 | 31920 |
5 | 超过420000元至660000元的部分 | 30 | 52920 |
6 | 超过660000元至960000元的部分 | 35 | 85920 |
7 | 超过960000元的部分 | 40 | 181920 |
-
应纳税所得额
免征额,又称个税起征点,19年起为5000元。 -
个人所得税
-
速算扣除数
解决超额累进税率分级计算税额的速算数字。 -
累计预扣预缴
以前是以每个月工资金额扣税,19年开始以一年以内按照每个月叠加进行按年计税。
1月份扣税,以第一个月工资为基数。
2月份扣税,是以前两个月工资为基数。
3月份扣税,是以前三个月工资为基数。
…
即:累计前n个月的应纳税所得额,乘以查税表得预扣率,减去速算扣除数和前n个月已缴纳的个人所得税,结果就是当前月份的个人所得税。
第n个月的个人所得税 = 前n个月应纳税所得额之和*税率-速算扣除数 - 前n-1个月的个人所得税
- 举例:
小王月薪15000,儿子学校在读,有首套房,教育费1000元与房贷支出1000元由小王扣除。暂不考虑五险一金。
月份 | 预扣预缴税额计算 | 税额 |
---|---|---|
1 | (15000-5000-1000-1000)*3%-0-0 | 240 |
2 | 2*(15000-5000-1000-1000)*3%-0-240 | 240 |
3 | 3*(15000-5000-1000-1000)3%-0-2402 | 240 |
4 | 4*(15000-5000-1000-1000)3%-0-2403 | 240 |
5 | 5*(15000-5000-1000-1000)10%-2520-2404 | 520 |
6 | 6*(15000-5000-1000-1000)10%-2520-(2404+520) | 800 |
7 | 7*(15000-5000-1000-1000)10%-2520-(2404+520+800) | 800 |
8 | 8*(15000-5000-1000-1000)10%-2520-(2404+520+800*2) | 800 |
9 | 9*(15000-5000-1000-1000)10%-2520-(2404+520+800*3) | 800 |
10 | 10*(15000-5000-1000-1000)10%-2520-(2404+520+800*4) | 800 |
11 | 11*(15000-5000-1000-1000)10%-2520-(2404+520+800*5) | 800 |
12 | 12*(15000-5000-1000-1000)10%-2520-(2404+520+800*6) | 800 |
1.2 年终奖个人所得税
首先将年终奖除以12,分摊到12个月。再查税率表确定税率。
最终个人所得税计算公式为:
级数 | 全月缴应纳税所得额 | 预扣率(%) | 速算扣除数 |
---|---|---|---|
1 | 不超过3000元的 | 3 | 0 |
2 | 超过3000元至12000元的部分 | 10 | 210 |
3 | 超过12000元至25000元的部分 | 20 | 1410 |
4 | 超过25000元至35000元的部分 | 25 | 2660 |
5 | 超过35000元至55000元的部分 | 30 | 4410 |
6 | 超过55000元至80000元的部分 | 35 | 7160 |
7 | 超过80000元的部分 | 45 | 15160 |
2. 功能
2.1 初级功能
- 该软件分为两大功能:月薪个人所得税和年终奖个人所得税
- 提示用户选择功能,并且提示用户输入必要的信息(月薪、五险一金、专项扣除等)。
- 打印出每个月扣除的税额和实发薪资。
2.2 高级功能
按照下面的条款,打印工资明细
- 应发工资
- 缺勤扣款
- 餐补
- 社保
- 公积金
- 个人所得税
- 实发工资
分析
- 确定使用的变量和公式。
- 实现实例的计算。
- 添加交互操作。
#include <stdio.h>
double tax_table(int a)//年度预扣税表
{
if(a<=36000)
return a*0.03;
else if(a>36000&&a<=144000)
return a*0.1-2520;
else if(a>144000&&a<=300000)
return a*0.2-16920;
else if(a>300000&&a<=420000)
return a*0.25-31920;
else if(a>420000&&a<=660000)
return a*0.3-52920;
else if(a>66000&&a<=960000)
return a*0.35-85920;
else if(a>960000)
return a*0.45-181920;
}
double monthly_tax(double a) //每月个人所得税 a:月薪
{ //第N个月税=前N个月纳税所得额之和-速算扣除数-前N-1个月的个人所得税
int m;//月份
double sum=0;//前N-1个月的个人所得税
double mtax;//每月个人所得税
for(m=1;m<=12;m++)
{
mtax = tax_table(m*(a-a*0.223-5000))-sum;
sum+=mtax;
printf("%d月份个人所得税为%.2f元,实发薪资为:%.2f元\n",m,mtax,a-a*0.223-mtax);
}
}
double monthly_tax_detailed(double a) //每月工资明细
{ //第N个月税=前N个月纳税所得额之和-速算扣除数-前N-1个月的个人所得税
int m;//月份
double sum=0;//前N-1个月的个人所得税
double mtax;//每月个人所得税
for(m=1;m<=12;m++)
{
mtax = tax_table(m*(a-a*0.223-5000))-sum;
sum+=mtax;
printf("%d月份应发工资 缺勤扣款 餐补 社保 公积金 个人所得税 实发工资\n",m);
printf("%.2f\t%.2f\t %.2f\t %.2f %.2f\t%.2f\t %.2f\n",a,0.0,320.0,a*0.103,a*0.12,mtax,a-a*0.223-mtax+320.0);
}
}
double Annual_bonus(int a)//年终奖个人所得税
{
int m=a/12;
if(m<=3000)
return m*0.03*12;
else if(m>3000&&m<=12000)
return (m*0.1-210)*12;
else if(m>12000&&m<=25000)
return (m*0.2-1410)*12;
else if(m>25000&&m<=35000)
return (m*0.25-2660)*12;
else if(m>35000&m<=55000)
return (m*0.3-4410)*12;
else if(m>55000&m<=80000)
return (m*0.35-7160)*12;
else if(m>80000)
return (m*0.45-15160)*12;
}
void menu()
{
printf("请输入数字进行相对应的操作\n");
printf("1.月薪个人所得税查询\n");
printf("2.年终奖个人所得税查询\n");
printf("3.打印工资明细\n");
printf("输入其它数字退出!\n");
}
int main() {
int a=1;
double wages;//月薪
double ywages;//年终奖
int month;//月份
while(a)
{
menu();
scanf("%d",&a);
switch(a)
{
case 1 : printf("请输入你的月薪:");
scanf("%lf",&wages);
monthly_tax(wages);
break;
case 2 : printf("请输入你的年终奖工资:");
scanf("%lf",&ywages);
printf("年终奖个人所得税为%.3f元,实际年终奖为%.2f元\n",Annual_bonus(ywages),ywages-Annual_bonus(ywages));
break;
case 3 : printf("请输入你的月薪:");
scanf("%lf",&wages);
monthly_tax_detailed(wages);
break;
default : a=0;break;
}
}
return 0;
}