计算工资、劳务税前或税后收入的JS代码(ES6)
JS代码
<script>
var taxHelper= {toPureIncome(value, mode=0) {if(isNaN(value)) return 0;if(value<=0) return 0;let taxes = [[//工资[3500, 5000, 8000, 12500, 38500, 58500, 83500, value],[0, 0, 0, 0, 0, 0, 0, 0],[3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500],[0, 0.03, 0.10, 0.20, 0.25, 0.30, 0.35, 0.45],[0, 0, 105, 555, 1005, 2755, 5505, 13505]],[//劳务[800, 4000, 20000, 50000, value],[ 0, 0, 0.2, 0.2, 0.2],[ 0, 800, 0, 0, 0],[ 0, 0.2, 0.2, 0.3, 0.4],[ 0, 0, 0, 2000, 7000]]];let levels = taxes[mode];let index = levels[0].findIndex((v) => {return v>=value;});let result = Number.parseFloat(value - (value * (1 - levels[1][index]) - levels[2][index]) * levels[3][index] + levels[4][index]).toFixed(2);return result;},toSellingPrice(value, mode=0) {if(isNaN(value)) return 0;if(value<=0) return 0;let taxes = [[//工资[3500, 4955, 7655, 11255, 30755, 44755, 61005, value],[0, 0, 0, 0, 0, 0, 0, 0],[3500, 3500, 3500, 3500, 3500, 3500, 3500, 3500],[0, 0.03, 0.10, 0.20, 0.25, 0.30, 0.35, 0.45],[0, 0, 105, 555, 1005, 2755, 5505, 13505]],[//劳务[800, 3360, 16000, 37000, value],[ 0, 0, 0.2, 0.2, 0.2],[ 0, 800, 0, 0, 0],[ 0, 0.2, 0.2, 0.3, 0.4],[ 0, 0, 0, 2000, 7000]]];let levels = taxes[mode];let index = levels[0].findIndex((v) => {return v>=value;});let result = Number.parseFloat((value - levels[4][index] - levels[2][index] * levels[3][index]) / ( 1 - levels[3][index] + levels[1][index] * levels[3][index])).toFixed(2);return result;}
}
</script>
原理
充分利用ES6的特点,把工资、劳务在税前、税后的计算转化为json驱动方式。主要实现了两个事:
- 统一工资、劳务计算个人所得税的方式
在taxes区域变量中,统一税的计算方式为:(税级-税前定额扣减-税前比例扣减)*对应税率-扣减数的方式。
- 充分利用数组的findIndex方法
示例
<script>
alert("工资为10000元(税前)的实际收入为:" + taxHelper.toPureIncome(10000, 0);
alert("工资为10000元(税后)的税前收入为:" + taxHelper.toSellingPrice(10000, 0);
alert("劳务为10000元(税前)的实际收入为:" + taxHelper.toPureIncome(10000, 1);
alert("劳务为10000元(税后)的税前收入为:" + taxHelper.toSellingPrice(10000, 1);
</script>
计算工资、劳务税前或税后收入的JS代码(ES6)相关推荐
- React多页面应用5(webpack生产环境配置,包括压缩js代码,图片转码等)
本教程总共7篇,每日更新一篇,请关注我们!你可以进入历史消息查看以往文章,也敬请期待我们的新文章! 1.React多页面应用1(webpack开发环境搭建,包括Babel.热更新等) ----2017 ...
- 安卓运行js代码-完美
前言 安卓里面做边缘计算的功能,需要动态编辑js代码执行 巨坑 java里面有ScriptEngineManager类,可以执行js 但在安卓里面没有这个类,javax下面的都不能执行 网上说的安卓里 ...
- Java计算税后工资和税前工资推算
计算税后工资(扣税基数base=3500,可以根据最新情况修改,如5000) @Test public void test() {double money = 30000; //税前工资 double ...
- 税后工资和税前工资的对应计算
前段时间参加一个公司的笔试,其中一个题目是实现税前工资和税后工资的相应转化(由税前求税后.由税后求税前).题目介绍如下: 下表是2011年9月1日起调整后现行的7级超额累进税率(原题目中没有最后一列) ...
- 知道个税怎么计算工资
一.知道个税怎么计算工资 1.先计算应纳税所额=总工资-三险金-免征额.三险金:基本养保险失业保险基本医疗保险住房公积金.所税=应纳税所额X税率-速扣数***根据应纳税所额确定相应税率速扣数. 2.法 ...
- 7-10 计算工资 (C语言)
7-10 计算工资 (15 分)某公司员工的工资计算方法如下:一周内工作时间不超过40小时,按正常工作时间计酬:超出40小时的工作时间部分,按正常工作时间报酬的1.5倍计酬.员工按进公司时间分为新职工 ...
- 计算机表格收入水平怎么算,怎么用excel计算工资所得税
利用Excel表格计算工资所得税?单位工资发放大多采用计算机管理,对一些小企业没有采用工资软件的,一般用Excel表来计算工资.下面小编就教你怎么用excel计算工资所得税. excel计算工资所得税 ...
- c++输入错误重新输入_C程序-根据时长和时薪计算工资1.3(解决输入非数字选项退出的bug)...
程序内容: 提供五种工资菜单,用户自行选择,读取用户输入的工作时长,计算工资和净收入,及其缴纳的税金.(C Primer Plus 第7章 第8题) 程序更新:解决输入非数字选项后退出程序的bug. ...
- 7-66 计算工资 (15 分)
7-66 计算工资 (15 分) 某公司员工的工资计算方法如下:一周内工作时间不超过40小时,按正常工作时间计酬:超出40小时的工作时间部分,按正常工作时间报酬的1.5倍计酬.员工按进公司时间分为新职 ...
最新文章
- linux修改bmc ip,RH1288 V2修改BMC IP不生效处理案例
- SQLServer中设置XML索引
- 字符类型(Java)
- 如何开启匿名访问SharePoint 2010里的Client Object Model
- Windows-Server下加强系统安全性系列之方案【九】
- ansible-playbook如何判断并中断执行
- 解锁并设置远程登录尝试次数
- wind 下装mysql,windows 下安装MySQL
- print($arr,true)的参数true表示将$arr的值返会,而不是打印
- 目录_计算机视觉中的数学方法
- python笔记:统计字符串里各种字符的个数 + pandas删除某列
- PDF虚拟打印机是如何打印文件的
- python破解qq空间访问权限_怎么利用爬虫爬取QQ空间中设置了权限的无法正常访问的内容?...
- Hash表素数大集合
- HTML5框架 iframe用法 实现嵌套 好玩用法
- 三极管三种基本放大电路
- Linux sublime设置中文,Sublime Text 3 设置为Ubuntu 14.04默认编辑器并支持中文
- 【华为OD机试 2023最新 】 最短木板长度(C++ 100%)
- 复旦-华盛顿大学EMBA 二十年20人丨徐欣:从外企转战民企的变身
- 访问 Android 开发者网站 Go 官网
热门文章
- 创建群晖共享文件夹,并进行电脑访问
- Python网络爬虫实战:《跨越星弧》TapTap玩家评论的抓取及分析
- JavaScript进阶 - 第9章 DOM对象,控制HTML元素
- 摄影测量:ERDAS自动、手动和导入特征点对(超详细)
- Knime基础数据案例(1)统计数据分组
- 工业革命的秋之涟漪(二):从飞桨,走向深度学习产业实践
- Arduino红外控制LED灯开关
- spyder pyecharts不显示_逆袭的IGZOIPS!微星电竞显示器新品评测:色彩好且拖影少...
- 【AI视野·今日CV 计算机视觉论文速览 第215期】Tue, 8 Jun 2021
- 2022年Google play admob AdSense 第三方收款指南