重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
首先写JAVABEAN文件:WageTax.java/**nbsp;*nbsp;*nbsp;@authornbsp;剑江帝国nbsp;*nbsp;@usagenbsp;计算个人所得税nbsp;*nbsp;@datenbsp;2008-10-8nbsp;*/publicnbsp;classnbsp;WageTaxnbsp;implementsnbsp;java.io.Serializable{nbsp;nbsp;nbsp;nbsp;privatenbsp;doublenbsp;wage;//定义工资nbsp;nbsp;nbsp;nbsp;privatenbsp;Stringnbsp;output=““;//定义输入nbsp;nbsp;nbsp;nbsp;/**nbsp;nbsp;nbsp;nbsp;nbsp;*nbsp;输入一个字符串,代表工资,如果输入出错会将错误写至outputnbsp;nbsp;nbsp;nbsp;nbsp;*/nbsp;nbsp;nbsp;nbsp;publicnbsp;voidnbsp;setWage(Stringnbsp;wageInput){nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;try{nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;this.wage=Double.parseDouble(wageInput);nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;}nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;catch(Exceptionnbsp;ex){nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;output=“输入有误“;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;this.wage=-1;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;}nbsp;nbsp;nbsp;nbsp;}nbsp;nbsp;nbsp;nbsp;/**nbsp;nbsp;nbsp;nbsp;nbsp;*nbsp;计算税额,算法简单说一下。nbsp;nbsp;nbsp;nbsp;nbsp;*/nbsp;nbsp;nbsp;nbsp;publicnbsp;doublenbsp;countTax(){nbsp;nbsp;nbsp;nbsp;nbsp;ifnbsp;(wage-2000amp;gt;0){nbsp;nbsp;nbsp;nbsp;//第一步,将个人的工资减去2000后按交税等级分成若干个收入块nbsp;nbsp;nbsp;nbsp;//第二步,按对应税率统计每个块应该交税额并相加,之后返回nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;//STEP1nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;wage=wage-2000;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;doublenbsp;rate[]={0.05,0.1,0.15,0.2,0.25,0.3,0.35,0.4,0.45};nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;intnbsp;bound[]={0,500,2000,5000,20000,40000,60000,80000,100000};nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;doublenbsp;chunk[]={0,0,0,0,0,0,0,0,0};nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;for(intnbsp;i=1;iamp;lt;9;i++){nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;ifnbsp;(wage-bound[i]+bound[i-1]amp;gt;0)nbsp;{nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;wage=wage-bound[i]+bound[i-1];nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;chunk[i-1]=bound[i]-bound[i-1];nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;}nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;else{nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;chunk[i-1]=wage;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;wage=-1;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;break;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;}nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;}nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;ifnbsp;(wageamp;gt;0)nbsp;chunk[8]=wage;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;doublenbsp;tax=0;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;for(intnbsp;i=0;iamp;lt;9;i++){nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;tax=tax+chunk[i]*rate[i];nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;}nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;returnnbsp;tax;nbsp;nbsp;nbsp;nbsp;nbsp;}nbsp;nbsp;nbsp;nbsp;nbsp;elsenbsp;returnnbsp;0;nbsp;nbsp;nbsp;nbsp;}nbsp;nbsp;nbsp;nbsp;/**nbsp;nbsp;nbsp;nbsp;nbsp;*nbsp;获得税款数nbsp;nbsp;nbsp;nbsp;nbsp;*/nbsp;nbsp;nbsp;nbsp;publicnbsp;Stringnbsp;getTax(){nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;ifnbsp;(output.equals(““)){nbsp;nbsp;nbsp;nbsp;returnnbsp;Double.toString(countTax());}nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;elsenbsp;returnnbsp;output;nbsp;nbsp;nbsp;nbsp;}}///////////////////////////////////////////////////////然后在输出页面中使用设定wage属性为工资,获得tax属性得到税
成都创新互联公司专注于盐湖企业网站建设,成都响应式网站建设公司,商城网站建设。盐湖网站建设公司,为盐湖等地区提供建站服务。全流程按需网站制作,专业设计,全程项目跟踪,成都创新互联公司专业和态度为您提供的服务
这是网络异常的提示,通常是服务器端的问题,换台机器试试,如果还是不行,那就是税务那面的问题,稍微等等再试好了。
第一个是:
import javax.swing.*;
public class Test{
public static void main( String args[]){
String input = JOptionPane.showInputDialog("请输入一个时间:");
int time = Integer.parseInt(input);
int hour = time / 60;
int minute = (time % 60);
JOptionPane.showMessageDialog(null,hour+"小时"+minute+"分钟");
System.exit( 0 );
}
}
直接复制粘贴。
把这个保存为Test.java,然后编译。注意大小写。
第二个是:
import javax.swing.*;
public class Test{
public static void main( String args[]){
String input = JOptionPane.showInputDialog("请输入工作每小时的报酬:");
int pay = Integer.parseInt(input);
input = JOptionPane.showInputDialog("请输入工作小时数:");
int hour = Integer.parseInt(input);
input = JOptionPane.showInputDialog("请输入税率(0.00):");
float rate = Float.parseFloat(input);
String output;
output = "每小时工资:" + pay +
"\n工作小时数:" + hour +
"\n总收入:" + (pay * hour) +
"\n缴税金额:" + (pay*hour*rate) +
"\n净利润:" + (pay*hour*(1-rate));
JOptionPane.showMessageDialog(null,output);
System.exit( 0 );
}
}
这程序中在输入税率时不以%5输入 ,而是以0.05的形式输入。因为我还没有找到能把%5转换成float型数的函数。所以这一点很抱歉。望谅解。^_^
同样的把这个保存成Test.java即可编译。
# coding=utf-8
import time
base_quota = 3500
tax_quota = [1500, 4500, 9000, 35000, 55000, 80000]
tax_rat = [0.03, 0.10, 0.20, 0.25, 0.30, 0.35, 0.45]
tax_quick = [0, 105, 555, 1005, 2755, 5505, 13505]
one_month = 0
two_month = 0
# 主线程执行函数
def run():
year_bonus = input('Please input bonus\n')
month_salary = input('Please input salary\n')
year_bonus = int(year_bonus)
month_salary = int(month_salary)
# 获取三种方案的税额(不拆分、拆入一个月、拆入两个月)
start_time = time.clock()
year_bonus_tax = get_only_bonus_tax(year_bonus, month_salary)
one_month_tax = get_one_month_bonus(year_bonus, month_salary)
two_month_tax = get_two_month_bonus(year_bonus, month_salary)
# 取最小税额并计算税后奖金
min_tax = min(year_bonus_tax, one_month_tax, two_month_tax)
bonus_remain = year_bonus - min_tax
if min_tax == year_bonus_tax:
print(year_bonus, "0", "0", bonus_remain)
elif min_tax == one_month_tax:
print(year_bonus - one_month, one_month, "0", bonus_remain)
elif min_tax == two_month_tax:
print(year_bonus - (two_month * 2), two_month, two_month, bonus_remain)
else:
return
end_time = time.clock()
print(u"耗时:"),
print(end_time - start_time)
run()
return
# 获取税率等级
def get_tax_num(money):
for i in range(len(tax_quota)):
if money tax_quota[-1]:
return len(tax_quota)
elif money = tax_quota[i]:
return i
else:
continue
# 获取税率
def get_tax_rat(money):
return rat(get_tax_num(money))
# 获取速算扣除数
def get_tax_quick(money):
return quick(get_tax_num(money))
def rat(num):
if num len(tax_rat):
return tax_rat[num]
else:
print("function rat error")
def quick(num):
if num len(tax_quick):
return tax_quick[num]
else:
print("function quick error")
# 获取平常月交税金额
def get_month_tax(money):
if money = base_quota:
return 0
else:
money -= base_quota
return money * get_tax_rat(money) - get_tax_quick(money)
# 获取年奖平均月交税金额
def get_per_month_tax(money):
return money * get_tax_rat(money) - get_tax_quick(money)
# 获取不拆分年奖交税总额
def get_only_bonus_tax(year_bonus, month_salary):
if int(month_salary) = int(base_quota):
if int(year_bonus) int(base_quota - month_salary):
return 0
else:
per_month = (year_bonus - (base_quota - month_salary)) / 12.0
tax = (year_bonus - (base_quota - month_salary)) * get_tax_rat(per_month) - get_tax_quick(
per_month)
else:
per_month = year_bonus / 12.0
tax = year_bonus * get_tax_rat(per_month) - get_tax_quick(per_month)
return tax
# 获取拆分为一个月交税总额
def get_one_month_bonus(year_bonus, month_salary):
now_bonus_tax = get_only_bonus_tax(year_bonus, month_salary)
for i in range(1, int(year_bonus)):
bonus_remain = year_bonus - i
month_add_salary = month_salary + i
month_tax_add = get_month_tax(month_add_salary) - get_month_tax(month_salary)
bonus_tax = round(get_only_bonus_tax(bonus_remain, month_salary) + month_tax_add, 2)
if bonus_tax now_bonus_tax:
now_bonus_tax = bonus_tax
global one_month
one_month = i
return now_bonus_tax
# 获取拆分为两个月交税总额
def get_two_month_bonus(year_bonus, month_salary):
now_bonus_tax = get_only_bonus_tax(year_bonus, month_salary)
for i in range(1, int(year_bonus)):
bonus_remain = year_bonus - i
month_add_salary = month_salary + (i / 2.0)
month_tax_add = (get_month_tax(month_add_salary) - get_month_tax(month_salary)) * 2.0
bonus_tax = round(get_only_bonus_tax(bonus_remain, month_salary) + month_tax_add, 2)
if bonus_tax now_bonus_tax:
now_bonus_tax = bonus_tax
global two_month
two_month = i / 2.0
return now_bonus_tax
# 运行主函数
run()
你写错了,else if(3500income income=5000)
要改成else if(income3500 income=5000)
这个else if(5000income income=8000)
要改成else if(income5000 income=8000)
下面你自己仔细找,大于号写反了