急Java计算个人所得税的问题

急Java计算个人所得税的问题
黄盛洁 来自: 移动端 2021-03-30 07:58

声明:本网站依照法律规定提供财经资讯,未授权或允许任何组织与个人发布交易广告。对任何广告信息请谨慎交易,谨防诈骗。举报邮箱:xxxxxxxxx@qq.com

2021-03-30 08:10最佳答案

文件没有格式。。。。。。。。。。
读文件,可以按文字读,也可以按JAVA对象读。
而关于税的计算,百度中肯定可以搜索到。

其他回答(共7条)

  • 2021-03-30 08:22 黄盛林 客户经理

    java计算个税例子:

    /**

    * @author Kun Sun

    * @Date: 2013.10.15

    */

    public class Employee { // 雇员类

    private String ID;       // ID

    private String name;     // 姓名

    private int salary;      // 工资薪金所得

    private int insureHome;  // “五险一金”数额

    private int deduct;      // 扣除数额

    Employee(){

    }

    Employee(String ID,String name){ // 带参数的构造方法

    this.ID = ID;

    this.name = name;

    }

    Employee(String ID,String name,int salary,int insureHome,int deduct){  // 带参数的构造方法

    this.ID = ID;

    this.name = name;

    this.salary = salary;

    this.insureHome = insureHome;

       this.deduct = deduct;

    }

    public String getID() {

    return ID;

    }


    public String getName() {

    return name;

    }


    public int getSalary() {

    return salary;

    }


    public int getInsureHome() {

    return insureHome;

    }


    public int getDeduct() {

    return deduct;

    }


    public void setID(String iD) {

    ID = iD;

    }


    public void setName(String name) {

    this.name = name;

    }


    public void setSalary(int salary) {

    this.salary = salary;

    }


    public void setInsureHome(int insureHome) {

    this.insureHome = insureHome;

    }


    public void setDeduct(int deduct) {

    this.deduct = deduct;

    }

    public void selfValue(){ // 个人所得税具体计算

    double sefValue;

       if(salary>=0 && salary<1500){

        sefValue = (double)(salary-insureHome-deduct)*0.03 - 0;

       }else if(salary>=1500 && salary<4500){

        sefValue = (double)(salary-insureHome-deduct)*0.1 - 105;


       }else if(salary>=4500 && salary<9000){

        sefValue = (double)(salary-insureHome-deduct)*0.2 - 555;


       }else if(salary>=9000 && salary<35000){

        sefValue = (double)(salary-insureHome-deduct)*0.25 - 1005;


       }else if(salary>=35000 && salary<55000){

        sefValue = (double)(salary-insureHome-deduct)*0.30 - 2755;


       }else if(salary>=55000 && salary<80000){

        sefValue = (double)(salary-insureHome-deduct)*0.35 - 5505;


       }else{

        sefValue = (double)(salary-insureHome-deduct)*0.45 - 13505;

       }

       System.out.println(sefValue);

    }

    }


    // 用于测试雇员类

    public class MainClass {


    /**

    * @param args

    */

    public static void main(String[] args) {

    // TODO Auto-generated method stub

    System.out.println("第一种调用方法:");

    Employee emp = new Employee("1001","Sun");

    emp.setSalary(12345);

    emp.setInsureHome(890);

    emp.setDeduct(55);

    System.out.println("编号为"+emp.getID()+",姓名是"+emp.getName()+" 的应纳税额是:");

       emp.selfValue();

     

       System.out.println("------------------------\n第二种调用方法:");

       Employee emp2 = new Employee("1001","Sun",12345,890,55);

    System.out.println("编号为"+emp2.getID()+",姓名是"+emp2.getName()+" 的应纳税额是:");

       emp2.selfValue();

     

       System.out.println("------------------------\n第二种调用方法:");

       Employee emp3 = new Employee();

       emp3.setID("1001");

       emp3.setName("Sun");

    emp3.setSalary(12345);

    emp3.setInsureHome(890);

    emp3.setDeduct(55);

    System.out.println("编号为"+emp3.getID()+",姓名是"+emp3.getName()+" 的应纳税额是:");

       emp3.selfValue();

    }

    }

    运行结果:

  • 2021-03-30 08:19 龚安静 客户经理

    public class Employee {
    String name;
    double salary;
    double subsidy;
    private Scanner sc;
    public void setA() {
    sc = new Scanner(System.in);
    System.out.println("请输入员工的姓名:");
    name = sc.next();
    try {
    name = new String(name.getBytes("GBK"));
    } catch (UnsupportedEncodingException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    // 可是我怎么都运行不出来,求好心人帮帮忙看看!!
    System.out.println("请输入员工工资:");
    salary = sc.nextDouble();
    System.out.println("请输入员工的加班补贴:");
    subsidy = sc.nextDouble();
    }
    public void getshuishou() {
    double before = 0;
    double after = 0;
    double suodeshui = 0;
    before = salary + subsidy;
    if (before >= 2000 && before < 2500) {
    suodeshui = ((before - 2000) * 0.05);
    } else if (before >= 2500 && before < 4000) {
    suodeshui = ((before - 2000) * 0.1);
    } else if (before >= 4000 && before < 7000) {
    suodeshui = ((before - 2000) * 0.15);
    } else if (before >= 7000 && before < 22000) {
    suodeshui = ((before - 2000) * 0.2);
    } else if (before >= 22000) {
    suodeshui = ((before - 2000) * 0.3);
    } else {
    suodeshui = 0;
    }
    after = before - suodeshui; //把这句放到这里。
    System.out.print("员工" + name + "的税前收入为:" + before + "元" + "," + "税后收入为"
    + after + "元" + "," + "您缴纳的个人所得税为:" + suodeshui + "元");
    }
    public static void main(String[] args) {
    Employee emp = new Employee();
    emp.setA();
    emp.getshuishou();
    }
    }


    我给你修改了一下。。你看看。


    我给你把这个代码 改了一下,你看,你能不能看出它的好处。。

    public class Employee {
    private String name;
    private double salary;
    private double subsidy;
    /**
    * 无参构造 
    */
    public Employee() {
    // TODO Auto-generated constructor stub
    }
     
    /**
    * 有参构造
    * @param name
    * @param salary
    * @param subsidy
    */
    public Employee(String name,double salary,double subsidy) {
    this.name = name;
    this.salary = salary;
    this.subsidy = subsidy;
    }
    /**
    * 计算税收
    * @author 朱泽江
    * @date 2014-4-11 下午05:40:37
    */
    public void getshuishou() {
    double before = 0;
    double after = 0;
    double suodeshui = 0;
    before = salary + subsidy;
    if (before >= 2000 && before < 2500) {
    suodeshui = ((before - 2000) * 0.05);
    } else if (before >= 2500 && before < 4000) {
    suodeshui = ((before - 2000) * 0.1);
    } else if (before >= 4000 && before < 7000) {
    suodeshui = ((before - 2000) * 0.15);
    } else if (before >= 7000 && before < 22000) {
    suodeshui = ((before - 2000) * 0.2);
    } else if (before >= 22000) {
    suodeshui = ((before - 2000) * 0.3);
    } else {
    suodeshui = 0;
    }
    after = before - suodeshui;
    System.out.print("员工" + name + "的税前收入为:" + before + "元" + "," + "税后收入为"
    + after + "元" + "," + "您缴纳的个人所得税为:" + suodeshui + "元");
    }
    /**
    * 测试的方法
    * @author 朱泽江
    * @date 2014-4-11 下午05:41:16
    * @param args
    * 这样写的好处是把业务类,与测试类,分开
    */
    public static void main(String[] args) {
    Scanner sc;
    sc = new Scanner(System.in);
    System.out.println("请输入员工的姓名:");
    String name = sc.next();
    try {
    name = new String(name.getBytes("GBK"));
    } catch (UnsupportedEncodingException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    // 可是我怎么都运行不出来,求好心人帮帮忙看看!!
    System.out.println("请输入员工工资:");
    double salary = sc.nextDouble();
    System.out.println("请输入员工的加班补贴:");
    double subsidy = sc.nextDouble();
    Employee emp = new Employee(name,salary,subsidy);
    emp.getshuishou();
    }
    }
  • 2021-03-30 08:16 辛国海 客户经理

    120万元的套房,预计净残值于10%计算,使用年限20年,则每月折旧为4500元。
    公司给王某提供套房属于福利,王某每月得到的薪酬=4500+25000=29500元。
    王某每月应交的个人所得税=(29500-2000)*25%-1375=5500元。
    工作5年半也一样。
    若公司不把给王某的福利列入纳税的话
    王某每月应纳个人所得税=(25000-2000)*25%-1375=4375元
  • 2021-03-30 08:13 齐晓平 客户经理

    个税计算公式有2种方法
    用超额累进制,只要将应纳税所得额的分段区间乘以税率就行。
    速算扣除数是用全额累进的计税方法,只要减掉这个常数,就等于用超额累进方法计算的应纳税额,故称速算扣除数”,解释参考百度百科。
    简单实例:
    月工资4500元,减去2000,剩余2500应缴税
    用 超额累进制 500*5%+1500*10%+500*15%=250
    用 速算扣除数 2500*15%-125=175=250
    程序实现过程中,首先定义了p = 7级,应纳税额边界值数组,税率数组。较常规的做法是用ifelse语句逐级考虑应纳税所得额的大小,但这样写程序代码量大且不易看懂。本程序利用7级循环对传进参数income分段计算。进入相应级时,如果有相应段的超出额,即乘以该段的税率。具体实现如下:
    class Caculate{
    private String name;
    private double money;
    private double actual;
    /**
    * @param username 用户名
    * @param money 用户税前收入
    */
    public Caculate(String username,double money) {
    this.name=username;
    this.money=money;
    }

    public double HowMany(){
    //java中switch的case变量只支持int char string,而此处是double,所以不能使用switch
    double shouru = money;//构造函数中本来已经有this.money了,所以再次使用的使用,用成money即可
    if(shouru <= 1500){
    System.out.print("不需要缴纳个人所得税");
    this.actual=shouru;
    }else if(1500 < shouru && shouru < 3000){
    this.actual = shouru*(1 - 0.05);
    }if(3000 <= shouru){
    this.actual=shouru-(shouru-3000)*0.1;
    }
    System.out.println("实际收入为:"+this.actual);
    return this.actual;
    }
    }
    /**
    * PersonalFax.java
    */
    public class PersonalFax {
    public static void main(String args[]){
    Caculate shiji = new Caculate("张三", 1000.2345);
    double shou =shiji.HowMany();
    System.out.printf("%.3f", shou);

    }
    }
  • 2021-03-30 08:07 车广伟 客户经理

    1.根据个人所得税规定,工资收入应纳税额是:
    应纳税所得额=32600-2000=30600
    应纳个人所得税
    =应纳税所得额*适用税率-速算扣除数=30600*25%-1375=6275
    2.劳务报酬:
    劳务报酬应纳税额=70000*(1-20%)=56000
    应纳个人所得税=56000*40%-7000=15400
    劳务报酬所得、每次收入不超过四千元的,减除费用八百元;四千元以上的,减除百分之二十的费用,其余额为应纳税所得额。劳务报酬所得,适用比例税率,税率为百分之二十。对劳务报酬所得一次收入畸高的,可以实行加成征收。即:应纳税所得额超过2万元至5万元的部分,依照税法规定计算应纳税额后再按照应纳税额加征五成;超过5万元的部分,加征十成。
    3.红利收入
    根据税法规定,利息、股息、红利所得按每次收入额依照20%税率计算缴纳,但财政部国家税务总局规定:对上市公司分给投资者的分红所得减按10%税率计算缴纳个人所得税
    应纳个人所得税=900*10%=90元
    已缴80元
    ,应补10元。
    2009-11-03
    18:31
    补充问题
    不好意思,我要补充一下。书上答案说工资收入应纳税额3275元,税款由其所在工作单位的股份制公司在支付工资时扣缴。3275是怎么算出来的?
    工资薪金个人所得税计算
    (一)每月取得工资收入后,先减去个人承担的基本养老保险金、医疗保险金、失业保险金,以及按省级政府规定标准缴纳的住房公积金,再减去费用扣除额2000元/月,为应纳税所得额,按5%至45%的九级超额累进税率计算缴纳个人所得税。
    (二)计算公式:
    应交个人所得税
    =(工资收入-“个人负担的三险一金”-2000)*适用税率-速算扣除数
    (三)工资、薪金不含税收入适用税率表
    级数
    应纳税所得额(不含税)
    税率(%)
    速算扣除数(元)
    1
    不超过500元的部分
    5
    0
    2
    超过500元至2000元的部分
    10
    25
    3
    超过2000元至5000元的部分
    15
    125
    4
    超过5000元至20000元的部分
    20
    375
    5
    超过20000元至40000元的部分
    25
    1375
    6
    超过40000元至60000元的部分
    30
    3375
    7
    超过60000元至80000元的部分
    35
    6375
    8
    超过80000元至100000元的部分
    40
    10375
    9
    超过100000元的部分
    45
    15375
    (四)李某工资收入应缴个人所得税:
    (32600-2000)*25%-1375=6275
    元
  • 2021-03-30 08:04 符翩翩 客户经理

    public float ComputeTax(float income) //income为工资
    {
    float f_income=income-800; //起征基数为800,同时也可以参数化处理
    float[] tax_line={0f,500f,2000f,5000f,20000f,40000f,60000f,80000f,100000f};//计算个人所得税的档次(假设员工为中国国籍,因为国籍不同起征点数不同,税率不同。)
    float[] tax_rate={0f,0.05f,0.10f,0.15f,0.20f,0.25f,0.30f,0.35f,0.40f}; //各档次税率
    float[] tax_sub={0.f,25f,125f,375f,1375f,3375f,6375f,10375f,15375f}; //采用了简化算法
    int i_tax_level=0; //为了计算简便,把工资进行分档
    while(f_income>tax_line[i_tax_level]&&i_tax_level<tax_line.length)
    {
    i_tax_level++;
    };
    if(i_tax_level>0)
    {
    float f_tax=tax_sub[i_tax_level-1]+(f_income-tax_line[i_tax_level-1])*tax_rate[i_tax_level]; //算税的公式
    return f_tax;
    }
    else
    {
    return 0f;
    }
    }
  • 2021-03-30 08:01 齐明星 客户经理

    import java.io.*;
    public class Tax
    {
    public static void main(String[] args) throws IOException
    {
    InputStreamReader reader=new InputStreamReader(System.in);
    BufferedReader input=new BufferedReader(reader);
    System.out.print("工资:");
    String s1=input.readLine();
    double s=0,x=Double.parseDouble(s1);
    double p;
    x=x-800;
    if (x>=100000)
    {
    x-=100000;
    s+=x*0.45;
    x=100000;
    }
    if (x>=80000)
    {
    x-=80000;
    s+=x*0.40;
    x=80000;
    }
    if (x>=60000)
    {
    x-=60000;
    s+=x*0.35;
    x=60000;
    }
    if (x>=40000)
    {
    x-=40000;
    s+=x*0.30;
    x=40000;
    }
    if (x>=20000)
    {
    x-=20000;
    s+=x*0.25;
    x=20000;
    }
    if (x>=5000)
    {
    x-=5000;
    s+=x*0.20;
    x=5000;
    }
    if (x>=2000)
    {
    x-=2000;
    s+=x*0.15;
    x=2000;
    }
    if (x>=500)
    {
    x-=500;
    s+=x*0.10;
    x=500;
    }
    if (x>=0)
    {
    s+=x*0.05;
    }
    p=Double.parseDouble(s1)-s;
    System.out.println("应交税额:"+s);
    System.out.println("税后金额:"+p);
    }
    }
    我本人一直对个人所得税的计算持怀疑态度。。我也没法确认它是否正确。。只是当作业交(我自己目前也没涉及个人所得税计算的问题

相关百科精选

  • 中宏人寿保... 中宏人寿保险有限公司是国内首...

  • 美亚财产保险有限公司 AIG旗下的美国美亚保险公司凭借“核保严谨、产品创新”的经营理念在市场上始终保持着竞争优势,长期以来保持领先地位、并不断发展壮大。