• 前言
  • 一、html格式
  • 二、java代码

前言

2019年1月1日起,新个税改革正式全面实施,个税按照年累计的方式计算,个税改革与大家工资息息相关,所以闲来无事用jsp和java代码实现新个税计算。

一、html格式

直接用html格式的话,不用服务器部署,直接浏览就可以打开了。请忽略格式,代码如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><base href="<%=basePath%>"><title>个人所得税计算器</title><script>window. quickRateText = '{"3":0,"10":2520,"20":16920,"25":31920,"30":52920,"35":85920,"45":181920}'; //全局变量速算扣除数据window.quickRate = window.JSON.parse(quickRateText);window.rateText = '{"3":36000,"10":144000,"20":300000,"25":420000,"30":660000,"35":960000,"45":999999999}'; //全局变量税率window.rate = window.JSON.parse(rateText);function cal(){//开始计算var arr=new Array();arr[0]= document.getElementById("TaxSalary").value;arr[1]= document.getElementById("Insurance").value;arr[2]= document.getElementById("Special").value;arr[3]= document.getElementById("Month").value;for (var i=0;i<arr.length;i++){checkdata(arr[i]);//数据校验}CheckMonth(arr[3]) ;//月份校验                         var totalPay=0;//缴税累计金额var taxPay=0;//本月应缴税额document.getElementById("result").innerHTML="";//清空计算结果for(var i=1;i<=arr[3];i++){var TaxMoney=(arr[0]-arr[1]-arr[2]-5000)*i;    if(TaxMoney<0){ //不用交税document.getElementById("result").innerHTML+="<p>恭喜你!!!你不用交税哦!!!!</p>";return;}var taxRateString=getTaxRate(TaxMoney);var taxRate=taxRateString/100;var quickData= quickRate[taxRateString];totalPay=totalPay+taxPay;taxPay=TaxMoney*taxRate-quickData-totalPay;document.getElementById("result").innerHTML+="<p>第"+i+"月: 应交税额: "+TaxMoney.toFixed(2)+" 适应税率: "+taxRate+" 速算扣除数: "+quickData+ " 往月缴税金额: "+totalPay.toFixed(2)+" 本月应缴税额: "+taxPay.toFixed(2)+"</p>";}}
function getTaxRate(value) {//根据需要交税的金额获取相应的税率if(value<0) return 0;for (var prop in rate){  if(value<=rate[prop]) return    prop ;}}
function checkdata(value){CheckIsNull(value);if (isNaN(value)) {//用isNaN开始判断,如果成立就是非数字alert("请输入正确的数值");return false;} var len1 = value.substr(0,1);var len2 = value.substr(1,1);//如果第一位是0,第二位不是点,就用数字把点替换掉if(value.length > 1 && len1==0 && len2 != '.'){alert("请输入正确的数值");return false;    }if(value<0){alert("请输入大于或者等于0的正确的数值");return false;}}
function checkdata_Onblur(obj){//输入框失去焦点数据校验var value=obj.value;CheckIsNull(value);if (isNaN(value)) {//用isNaN开始判断,如果成立就是非数字alert("请输入正确的数值");return false;}var id= obj.id;if(id=="Month"){CheckMonth(value);}var len1 = value.substr(0,1);var len2 = value.substr(1,1);//如果第一位是0,第二位不是点,就用数字把点替换掉if(value.length > 1 && len1==0 && len2 != '.'){alert("请输入正确的数值");return false;   }if(value<0){alert("请输入大于或者等于0的正确的数值");return false;}}
function CheckMonth(value){//月份校验var len1 = value.substr(0,1);if(value.length >= 1 && len1==0 ){alert("请输入正确的月份");return false;}if(value.indexOf(".")>0){alert("月份不能是小数,请重新输入正确的月份");return false;}}
function CheckIsNull( value){//非空校验if (value==null||value==""){alert( "数据不能为空!请重新输入");return false;}}
</script></head><body><div style="text-align:center"><p><span style="display:inline-block;width:250px;text-align:right; margin:0px 200px">个税计算器</span>  </p></div><form action="form_action.asp" method="get"><div style="text-align:center"> <p><span style="display:inline-block;width:250px;text-align:right;">每月税前工资:</span><input   id="TaxSalary" onblur="checkdata_Onblur(this)" name="TaxSalary" required /> </p><p><span style="display:inline-block;width:250px;text-align:right;">五险一金扣除金额:</span><input   id="Insurance"  onblur="checkdata_Onblur(this)" name="Insurance" /> </p><p><span style="display:inline-block;width:250px;text-align:right;">专项扣除金额:</span><input   id="Special"  onblur="checkdata_Onblur(this)" name="Special" /> </p><p><span style="display:inline-block;width:250px;text-align:right;">月份(1-12):</span><input   id="Month" onblur="checkdata_Onblur(this)" name="Month" /> </p><p><button style="margin:100px"type="button" onclick="cal()">开始计算</button> </p> </div><div  style="text-align:center" id="result"></div></form></body>
</html>

效果如下:

可以看到,月薪1w有专项扣除和没有专项扣除交税情况差别还是挺大的。

二、java代码

import java.util.Scanner;public class CalcRate {public static final double base = 5000.00;// 纳税基准static double rateAmount = 0;// 每月税额static double beforeAmount = 0;// 税前金额static double totlerate = 0;// 累计税额static double[] rate;// 税率static double p = 0;// 专项扣除static double q = 0;// 速算扣除static double n = 0;// 五险一金扣除static int month = 1;// 月份static double[][] rates = { { 0, 0, 0 }, { 36000, 0.03, 0 },{ 144000, 0.1, 2520 }, { 3000000, 0.2, 16920 },{ 420000, 0.25, 31920 }, { 660000, 0.3, 52920 },{ 960000, 0.35, 85920 }, { 999999999, 0.45, 181920 } };public static double[] getRate(double totale) {double[] rate = { 36000, 0.03, 0 };for (int i = 1; i < rates.length; i++) {if (totale <= rates[0][0]) {rate = rates[0];} else if (totale > rates[i - 1][0] && totale <= rates[i][0]) {rate = rates[i];break;}}return rate;}public static double inputDouble(String message) {double input = -1;while (true) {System.out.println(message);try {Scanner in = new Scanner(System.in);input = in.nextDouble();} catch (Exception e) {}if (input < 0) {System.out.println("请输入一个正数值..");} else {break;}}return input;}public static int inputMonth() {int input = -1;while (true) {System.out.println("请输入月份:");try {Scanner in = new Scanner(System.in);input = in.nextInt();} catch (Exception e) {}if (input < 1 || input >12) {System.out.println("请输入一个正确月份..");} else {break;}}return input;}public static void main(String[] args) {while (true) {rateAmount = 0;totlerate = 0;System.out.println("-----------个税计算-------------");beforeAmount = inputDouble("请输入每月税前金额:");n = inputDouble("请输入五险一金扣除金额:");q = inputDouble("请输入专项扣除金额:");month = inputMonth();for(int i = 1;i<= month;i++){double amount = (beforeAmount - n - q -base)*i;rate  = getRate(amount);rateAmount = Math.round(( amount * rate[1])*100)/100 - rate[2]- totlerate;System.out.println("第"+i+"月:应纳税金额:"+amount+",税率:"+rate[1]+",速算扣除金额:"+rate[2]+",往月纳税金额合计:"+totlerate+",本月应缴税额:"+rateAmount);totlerate = totlerate+rateAmount;}}}
}

结果如下:

新个税计算html、以及java源代码相关推荐

  1. html提交表单使用python计算_教你使用Python实现新个税计算器

    自从采用新个税计算方法后,每个月发工资你是否真的清楚扣多少税? 今天跟大家分享下如何计算,希望大家喜欢. 计税方法科普 个税方法 这里需要知道的知识点: 1.个税起征点调到 5000: 2.累积预扣法 ...

  2. 用计算机怎么计算税率表,5000元新个税计算器公式税率表

    个税起征点已从2018年10月1日开始,由3500元调整为5000元,而且全国统一为5000元. 对于上班族来说,最关心的就是个人所得税了,因为这是关系到自己的利益问题.但是现在,根据最新消息得知,2 ...

  3. 解析java源代码_一步步解析java执行内幕

    对于任何一门语言,要想达到精通的水平,研究它的执行原理(或者叫底层机制)不失为一种良好的方式.在本篇文章中,将重点研究java源代码的执行原理,即从程 序员编写JAVA源代码,到最终形成产品,在整个过 ...

  4. 教你使用Python实现新个税计算器

    自从采用新个税计算方法后,每个月发工资你是否真的清楚扣多少税? 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手. 很多已经做案例的人,却 ...

  5. Android 新版个税计算小demo程序

    去年10月份开始个人所得税支持专项扣除和上调了个税起征点,针对该项改变写了一个小demo,在新政策下计算个人所得税扣除,工资所得,然后将每个月的扣除额度和实际所得额度展示. 截图如下: 直接上源码: ...

  6. 不能不懂的 Java 源代码编译过程分析

    前言 首先问大家一个问题,我们开发好 Java 代码是如何运行的?我们写了这么多年的代码,对于代码运行的流程是否清楚呢? 是不是在 ide 中点一下 Run 启动就完事了,我们写的代码直接就跑起来了, ...

  7. python我的所得税计算器_教你使用Python实现新个税计算器

    自从采用新个税计算方法后,每个月发工资你是否真的清楚扣多少税? 今天跟大家分享下如何计算,希望大家喜欢. 计税方法科普 个税方法 这里需要知道的知识点: 1.个税起征点调到 5000; 2.累积预扣法 ...

  8. java文件全是数字编码_批量将Java源代码文件的编码从GBK转为UTF-8

    最近在做一个项目,需要从以前的另外一个项目迁移大量源代码过来,但是由于另一个项目采用GBK编码格式,而新项目采用的UTF-8编码格式,如果直接把Java源代码复制到Eclipse中所有的中文信息都出现 ...

  9. eclipse java source_Eclipse中查看JAVA源代码显示SOURCE NOT FOUND解决办法

    Problem:Java利用快捷键查看源代码显示Source not found 出现问题的原因:JDK目录下缺失src.zip文件只有javafx-src.zip src.zip文件:Java所有类 ...

  10. 有哪些 Java 源代码看了后让你收获很多,代码思维和能力有较大的提升?...

    既然没人,我自荐一发我写的mvc框架biezhi/blade 对于学习J2EE的框架有很大的帮助,代码里使用了各种设计模式.事件机制.Java8语法.代码量也很小,web服务使用Netty作为支持,对 ...

最新文章

  1. 实时分析态势感知大数据日志
  2. python管理系统-基于Python实现用户管理系统
  3. Android/linux(earlysuspend、lateresume)睡眠唤醒机制简
  4. 自然语言处理中的自注意力机制(Self-Attention Mechanism)
  5. Java程序员在中年危机的时候,如何避免被“优化”掉呢?
  6. 语言高精度算法阶乘_JavaScript中的算法(附10道面试常见算法题解决方法和思路)...
  7. JavaScript学习总结(七)——JavaScript函数(function)
  8. 多继承、经典类与新式类、新式类的C3算法详解
  9. 第四周课程总结&实验报告。
  10. Vue的生命周期函数和beforeRouteEnter()/beforeRouteLeave()的函数
  11. 怎么给服务器部署php探针,phpStudy学习之php探针
  12. 计算机语言中str是什么意思,vb中str什么意思
  13. 未来IT行业前景如何?
  14. specular高光贴图
  15. linux串口操作及设置
  16. 究竟是什么人在买爱马仕?
  17. 深入理解计算机系统 2.1 节信息存储,深入理解计算机系统(原书第3版)- 第2章 信息的表示和处理 笔记...
  18. TADK v22.09 Release
  19. 吉哥系列故事——恨7不成妻(多返回值的数位DP)
  20. 声网-本地视频录制sdk配置说明

热门文章

  1. matlab 逆滤波,【CV】图像去模糊(逆滤波)
  2. Jmail的使用方法
  3. 金彩教育:高转化详情页怎么优化
  4. QStyleOption类型
  5. 数字翻译成英语JavaScript
  6. 一文读懂随机森林的解释和实现(附python代码)
  7. spring事务之REQUIRED
  8. 忽然想起你,你在远方还好吗!
  9. python长度转换编程_python长度转换代码1000m_Python实现制度转换(货币,温度,长度)...
  10. web前端开发工程师的三种级别,技术决定你能拿5K,还是15K,还是25K