根据最新税法进行编写,新老税法的比较,到手的工资进行计算。非北京用户修改一下91 92行 基数上下限即可。
效果如下图

部分代码:

<body style="padding: 10px;">
<h4>居民个人综合所得预扣预缴税款计算器</h4>
<form class="form-horizontal" style="width: 100%;margin-top: 20px;"><div class="form-group"><label for="sallery-input" class="col-sm-2 control-label">月工资:</label><div class="col-sm-5"><input class="form-control" type="number" id="sallery-input" onchange="change_sd_gjj()" value="0"/></div></div><div class="form-group"><label for="diff-input" class=  "col-sm-2 control-label">专项扣除:</label><div class="col-sm-5"><input  class="form-control"  type="number" id="diff-input" value="0"/></div></div><div class="form-group"><label for="diff-input" class=  "col-sm-2 control-label">社保汇缴基数:</label><div class="col-sm-5"><input  class="form-control"  type="number" id="socialSecurity-input" disabled="disabled" value="5080"/></div>自定义<input type="checkbox" onchange="socialSecurity()" id="socialSecurity-checkbox"></div><div class="form-group"><label for="diff-input" class=  "col-sm-2 control-label">公积金汇缴基数:</label><div class="col-sm-5"><input  class="form-control"  type="number" id="accumulationFund-input" disabled="disabled" value="2273"/></div>自定义<input type="checkbox" onchange="accumulationFund()" id="accumulationFund-checkbox"></div><div class="form-group"><div class="col-sm-offset-1 col-sm-10"><input type="button" class="btn btn-primary" value="计算" onclick="taxCount()"></div></div>
</form><div><div><span class="label label-primary">五险一金:</span><div id="five-risk-one-gold" style="margin-top: 10px;padding-left: 20px;"></div></div><div style="margin-top: 10px;"><div><span class="label label-primary">每月缴税</span></div><table class="table table-hover"><thead><tr><th>月份</th><th>个税(旧)</th><th>个税(新)</th><th>税后</th><th>到手(+公积金)</th><th>(*^__^*)省</th></tr></thead><tbody  id="tax-list"></tbody></table></div>
</div><div style="height: 50px;"></div><script>//******修改根据上限修改  北京社保汇缴基数上限为25401 下限5080 公积金上限25401 下限2273****var fiveRiskBase = [5080, 25401];var oneGold = [2273, 25401];//社保自定义function socialSecurity(){if($("#socialSecurity-checkbox").prop("checked") == true){// 社保可编写状态$('#socialSecurity-input').removeAttr("disabled")}else{      // 社保只读状态$('#socialSecurity-input').attr("disabled","disabled")}}//公积金自定义function accumulationFund(){if($("#accumulationFund-checkbox").prop("checked") == true){// 公积金可编写状态$('#accumulationFund-input').removeAttr("disabled")}else{       // 公积金只读状态$('#accumulationFund-input').attr("disabled","disabled")}}//根据工资改变社保公积金基数function change_sd_gjj(){//工资var sallery = parseInt($("#sallery-input").val());if(sallery<fiveRiskBase[0]){$("#socialSecurity-input").val(fiveRiskBase[0]);}else if(sallery>fiveRiskBase[1]){$("#socialSecurity-input").val(fiveRiskBase[1]);}else {          //如果选择自定义则社保不改变if(!$("#socialSecurity-checkbox").prop("checked")){$("#socialSecurity-input").val(sallery);}}if(sallery<oneGold[0]){$("#accumulationFund-input").val(oneGold[0]);}else if(sallery>oneGold[1]){$("#accumulationFund-input").val(oneGold[1]);}else {//如果选择自定义则公积金不改变if(!$("#accumulationFund-checkbox").prop("checked")){$("#accumulationFund-input").val(sallery);}}}//获取最新税率function getPercent(remain) {if (remain <= 36000) {return [0, 0.03];} else if (remain > 36000 && remain <= 144000) {return [2520, 0.1];} else if (remain > 144000 && remain <= 300000) {return [16920, 0.2];} else if (remain > 300000 && remain <= 420000) {return [31920, 0.25];} else if (remain > 420000 && remain <= 660000) {return [52920, 0.3];} else if (remain > 660000 && remain <= 960000) {return [85920, 0.35];} else if (remain > 960000) {return [181920, 0.45];}}//获取老版税率function getPercentOld(remain) {if (remain <= 1500) {return [0, 0.03];} else if (remain > 1500 && remain <= 4500) {return [105, 0.1];} else if (remain > 4500 && remain <= 9000) {return [555, 0.2];} else if (remain > 9000 && remain <= 35000) {return [1005, 0.25];} else if (remain > 35000 && remain <= 55000) {return [2755, 0.3];} else if (remain > 55000 && remain <= 80000) {return [5505, 0.35];} else if (remain > 80000) {return [13505, 0.45];}}//算总数function sumArray(array) {var total = 0;array.forEach(function (tax) {total += tax;});return total;}//计算function taxCount() {//基本扣除var base = 5000;//旧版基本扣除var baseOld =3500;//工资var sallery = parseInt($("#sallery-input").val());//专项扣除var diff = parseInt($("#diff-input").val());//社保var socialSecurity = $("#socialSecurity-input").val();//公积金var accumulationFund = $("#accumulationFund-input").val();//校验上下限//!$("#socialSecurity-checkbox").prop("checked")if(sallery>fiveRiskBase[0] && socialSecurity<fiveRiskBase[0] ){$("#socialSecurity-input").val(fiveRiskBase[0]);socialSecurity=fiveRiskBase[0];}else if(sallery>fiveRiskBase[1] && socialSecurity>fiveRiskBase[1] ){$("#socialSecurity-input").val(fiveRiskBase[1]);socialSecurity=fiveRiskBase[1];}if(sallery>oneGold[0] && accumulationFund<oneGold[0] ){$("#accumulationFund-input").val(oneGold[0]);accumulationFund=oneGold[0];}else if(sallery>oneGold[1] && accumulationFund>oneGold[1] ){$("#accumulationFund-input").val(oneGold[1]);accumulationFund=oneGold[1];}//工资大于5000进行计算if(sallery>base){var fiverRiskForTax = socialSecurity;if (socialSecurity < fiveRiskBase[0]) {fiverRiskForTax = fiveRiskBase[0];} else if (socialSecurity > fiveRiskBase[1]) {fiverRiskForTax = fiveRiskBase[1]}// 个人养老保险8% 医疗保险2% 失业保险0.2%var fiveRiskTaxList = [fiverRiskForTax * 0.08, fiverRiskForTax * 0.02, fiverRiskForTax * 0.002];var fiveRiskTax = sumArray(fiveRiskTaxList);var oneGoldForTax = accumulationFund;if (accumulationFund < oneGold[0]) {oneGoldForTax = oneGold[0];} else if (accumulationFund > oneGold[1]) {oneGoldForTax = oneGold[1]}//公积金 12%var oneGoldTax = oneGoldForTax * 0.12;var fiveRiskOneGold = fiveRiskTax + oneGoldTax;console.log('五险:', fiveRiskTaxList);console.log('一金:', oneGoldTax);var fivOneString = '<span class="label label-warning">三险(养老、医疗、失业):</span>&nbsp;&nbsp;<span class="label label-success">' + fiveRiskTaxList.join('</span>&nbsp;&nbsp;<span class="label label-success">')+ '</span>&nbsp;&nbsp;&nbsp;<span class="label label-warning">公积金:</span>&nbsp;&nbsp;<span class="label label-success">' + oneGoldTax.toFixed(2)+'</span>';document.getElementById("five-risk-one-gold").innerHTML = fivOneString;///老税//var taxOld_pre = sallery - fiveRiskOneGold - baseOld;var taxInfo = getPercentOld(taxOld_pre);var taxOld = taxOld_pre * taxInfo[1] - taxInfo[0] ;//新税//var tax = [];var taxListString = '';//税合计var taxCounts = 0;//工资合计var counts = 0;//税前减去各项基数var pre_tax = (sallery - (fiveRiskOneGold + diff + base)); for (var i = 1; i <= 12; i++) {var currentMonthRemain = pre_tax * i;console.log(i, currentMonthRemain);var taxPercentInfo = getPercent(currentMonthRemain);tax[i] = currentMonthRemain * taxPercentInfo[1] - taxPercentInfo[0] - sumArray(tax);taxCounts += Math.max(tax[i],0);counts += (sallery - fiveRiskOneGold - Math.max(tax[i],0));taxListString += '<tr>';taxListString += '<th>' + i + '月</th>';taxListString += '<th>' + (taxOld).toFixed(2) + '</th>';taxListString += '<th>' + Math.max(tax[i],0).toFixed(2) + '</th>';taxListString += '<th>' + (sallery - fiveRiskOneGold - Math.max(tax[i],0)).toFixed(2) + '</th>';taxListString += '<th>' + (sallery - fiveRiskOneGold - Math.max(tax[i],0) + oneGoldTax*2 ).toFixed(2)+ '</th>';taxListString += '<th>' + (taxOld - Math.max(tax[i],0)).toFixed(2) + '</th>';taxListString += '</tr>';}taxListString += '<tr  class="danger">';taxListString += '<th>合计</th>';taxListString += '<th>' + (taxOld*12).toFixed(2) + '</th>';taxListString += '<th>' + Math.max(taxCounts,0).toFixed(2) + '</th>';taxListString += '<th>' + Math.max(counts,0).toFixed(2) + '</th>';taxListString += '<th>' + (Math.max(counts,0) + oneGoldTax*2*12 ).toFixed(2) + '</th>';taxListString += '<th>' + (taxOld*12 - Math.max(taxCounts,0)).toFixed(2) + '</th>';taxListString += '</tr>';taxListString += '<tr  class="success">';taxListString += '<th>平均</th>';taxListString += '<th>' + (taxOld).toFixed(2) + '</th>';taxListString += '<th>' + (taxCounts/12).toFixed(2) + '</th>';taxListString += '<th>' + Math.max(counts/12,0).toFixed(2) + '</th>';taxListString += '<th>' + ((Math.max(counts,0) + oneGoldTax*2*12 )/12).toFixed(2) + '</th>';taxListString += '<th>' + ((taxOld*12 - Math.max(taxCounts,0))/12).toFixed(2) + '</th>';taxListString += '</tr>';console.log(tax);document.getElementById("tax-list").innerHTML = taxListString;}else{document.getElementById("tax-list").innerHTML = "无需缴税!!!";}}</script></body>

源码下载地址:https://github.com/tianliang0206/tax2019.git

居民个人综合所得预扣预缴税款计算器(网页单机版)相关推荐

  1. 新个税扣缴细则明确:工资薪金所得适用累计预扣法

    据悉,×××日前发布<关于全面实施新个人所得税法若干征管衔接问题的公告>(以下简称<公告>). ×××有关负责人表示,为尽可能使居民个人日常被扣缴义务人预扣预缴的税款与其年度应 ...

  2. 税务总局发文进一步简便优化部分纳税人个人所得税预扣预缴方法!2021年1月1日起施行

    国家税务总局 关于进一步简便优化部分纳税人个人所得税预扣预缴方法的公告 国家税务总局公告2020年第19号 为进一步支持稳就业.保就业.促消费,助力构建新发展格局,按照<个税法>及其实施条 ...

  3. 反馈结果: 【综合所得个人所得税预扣预缴申报表】为累计申报,系统检测到您税款所属期为【1】月的申报数据发生了变动,请同步更正【1】月后的申报数据。

    报税时碰到的问题. 我是4月份准备报3月份的数据,在自然人电子税务局(扣缴端)客户端操作. 因为我是先在扣缴端报2月份的数据,1月份是后来到大厅报的,所以现在3月份总是提示这个错误.报不了 反馈结果: ...

  4. 一次性奖金是否选择并入综合所得测算表

    http://www.shui5.cn/article/7f/125237.html 政策: <财政部关于个人所得税法修改后有关优惠政策衔接问题的通知>(财税[2018]164号)规定,居 ...

  5. 2019综合所得个税汇算申报的这些细节你知道吗?

    本文为"Alice税言税语"投稿,本人稍作改动,更多财税知识请关注. 目前各省市陆续开放2019年度综合所得个人所得税汇算清缴,可以自行在"个人所得税"APP完 ...

  6. 2019年工资个税计算方法来了!累计预扣法详解!

    千呼万唤始出来!2019年工资个税计算方法来了!预扣预缴,多退少补! 累计预扣法的来源 1.此次税法修订,最大变化之一,是对综合所得实行按年计税. 2.尽量减少纳税人办理年终汇算清缴的人数,特别是:只 ...

  7. sap中泰国有预扣税设置吗_泰国餐厅密度细分:带有K-means聚类的python

    sap中泰国有预扣税设置吗 Hi! I am Tung, and this is my first stories for my weekend project. What inspired this ...

  8. sap中泰国有预扣税设置吗_泰国的绘图标志| Python中的图像处理

    sap中泰国有预扣税设置吗 A colored image can be represented as a 3 order matrix. The first order is for the row ...

  9. AP_应付税务预扣税Withholding Tax中付款时产生预扣税(案例)

    摘自:http://www.cnblogs.com/eastsea/p/3840476.html AP_应付税务预扣税Withholding Tax中付款时产生预扣税(案例) 2014-07-12 C ...

最新文章

  1. 1.43千米外隔墙透视!这项黑科技已被中科大潘建伟团队实现 | PNAS
  2. Zend Framework数据库操作
  3. linux/unix编程手册-56_60
  4. 软件工程第一次作业补充
  5. 用Visual Studio Code Debug世界上最好的语言(Mac篇)
  6. JavascriptHelp
  7. Android之获取到音视频的时长后按格式(00:00或者00:00:00)显示
  8. ie浏览器模拟器_航空飞机模拟器安卓版下载-航空飞机模拟器游戏下载
  9. Map的value值降序排序与升序排序(java)
  10. h5海报设计开源工具_5个用于教幼儿阅读的开源工具
  11. linux mount nfs 超时,I / O无法(偶尔)挂载NFS-服务器超时
  12. windows 程序库
  13. switchHosts 介绍
  14. flash cs6汉化成中文,附汉化包
  15. 用Java实现圆锥的体积公式_圆锥的体积公式及其推导
  16. ImportError: cannot import name ‘chatBot‘ from ‘chatbot‘ (C:\Users\l\Pych
  17. C#——窗体程序,模拟高温高压锅炉降压处理
  18. mysql源码解读——内存管理MEM_ROOT
  19. 华为云计算工程师证好考吗?
  20. 一步一步实现微信抢红包

热门文章

  1. 做小程序开发需要什么软件?
  2. 树莓派远程桌面(windows 10 连接)
  3. C#使用NIDAQmx采集电压
  4. Oracle 数据库命令个人总结
  5. 北京理工大学计算机学院免盲审,博士学位论文送审常见问题汇总
  6. 5G/NR,MCS与TBS的计算
  7. ICEPAK与FLOTHERM数值特性对比
  8. 【预测模型】基于卷积神经网络CNN实现预测单输入单输出预测模型matlab源码
  9. 《数据挖掘导论》- 读书笔记(2)- 绪论
  10. 复旦大学大三学生郭泽宇攻克世界难题