税后工资计算c语言小工具

微信小程序上很多用于计算术后工资的小程序,各个的算出的结果有差异,很难辨别哪个比较准确。若当年工资存在涨薪或者社保基数有调整,网上小工具更是无法计算。这里用c代码自己实现一个,每个月的税前工资和缴纳系数自己调节,可算出准确结果。

gongzi.c

#include 

int main()
{
    //以下数组分别代表税前工资、社保基数、公积金计数。工资以20000为例,社保和公积金以10000为例
    int aShuiqianList[]       = {20000,20000,20000,20000,20000,20000,20000,20000,20000,20000,20000,20000};
    int aShebaojishuList[]    = {10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000};
    int aGongjijinjishuList[] = {10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000,10000};

    float fYanglao = 0.08;              //个人缴纳养老保险系数
    float fYiliao  = 0.02;              //个人缴纳医疗保险系数
    float fShiye   = 0.005;             //个人缴纳失业保险系数
    float fGongjijin = 0.07;            //个人缴纳公积金系数
    int iZhuanxiangfujiakouchu = 0;     //专项附加扣除,以0不申报为例

    if(sizeof(aShuiqianList)/sizeof(int) != 12 || sizeof(aShebaojishuList)/sizeof(int) != 12 || sizeof(aGongjijinjishuList)/sizeof(int) != 12)
    {
        perror("Invalid money config!\n");
        return -1;
    }

    //年度应纳税款项总额
    float fTotal = .0;
    //年度已缴纳个税总额
    float fTotalgeshui = .0;
    int i = 0;
    for(i = 0 ; i < 12 ; i++)
    {
        //当月五险一金个人需缴纳
        float fWuxianyijin = aShebaojishuList[i]*(fYanglao + fYiliao + fShiye) + aGongjijinjishuList[i]*fGongjijin;
        //减去5000免税、五险一金、专项附加扣除后,累加到应纳税总额中
        fTotal += (aShuiqianList[i]-fWuxianyijin-5000-iZhuanxiangfujiakouchu);
        //本月的需缴纳的税款(总应缴纳税款减去已缴纳税款总额fTotalgeshui计算得出)
        float fAddgeshui = .0;

        if(fTotal <= 36000)
            fAddgeshui = fTotal*0.03 - fTotalgeshui;
        else if(fTotal > 36000 && fTotal <= 144000)
            fAddgeshui = 36000*0.03 + (fTotal-36000)*0.1 - fTotalgeshui;
        else if(fTotal > 144000 && fTotal <= 300000)
            fAddgeshui = 36000*0.03 + (144000-36000)*0.1 + (fTotal-144000)*0.2 - fTotalgeshui;
        else if(fTotal > 300000 && fTotal <= 420000)
            fAddgeshui = 36000*0.03 + (144000-36000)*0.1 + (300000-144000)*0.2 + (fTotal-300000)*0.25 - fTotalgeshui;
        else if(fTotal > 420000 && fTotal <= 660000)
            fAddgeshui = 36000*0.03 + (144000-36000)*0.1 + (300000-144000)*0.2 + (420000-300000)*0.25 + (fTotal-420000)*0.3 - fTotalgeshui;
        else if(fTotal > 660000 && fTotal <= 960000)
            fAddgeshui = 36000*0.03 + (144000-36000)*0.1 + (300000-144000)*0.2 + (420000-300000)*0.25 + (660000-420000)*0.3 + (fTotal-660000)*0.35 - fTotalgeshui;
        else
            fAddgeshui = 36000*0.03 + (144000-36000)*0.1 + (300000-144000)*0.2 + (420000-300000)*0.25 + (660000-420000)*0.3 + (960000-660000)*0.35 + (fTotal-960000)*0.45 - fTotalgeshui;

        //累加已缴纳个税总额
        fTotalgeshui += fAddgeshui;
        //税后工资计算
        float fShuihou = aShuiqianList[i] - fWuxianyijin - fAddgeshui;
        printf("shuiqian[%d] wuxianyijin[%.2f] geshui[%.2f] shuihou[%.2f]\n" , aShuiqianList[i] , fWuxianyijin , fAddgeshui , fShuihou);
    }

    return 0;
}

案例的输出结果如下:

税后工资计算c语言小工具_第1张图片

你可能感兴趣的:(c语言,开发语言)