一年前写的:计算所得税以及计算24点游戏

一年多前一个夜里写的, 后来花时间做了些注释.

可以计算出个人所得税(月收入);根据所得税推算个人所得;计算24点的小游戏. 3部分都包含在一个页面里面,纯html+javascript.

其中个人所得税(月收入)借荐了某人的, 后面两个绝对原创

<html>

<head><script Language="JavaScript"><!--
function FrontPage_Form_Validator(theForm)
{
  
var checkOK = "0123456789.";
  
var checkStr = theForm.money.value;
  
var allValid = true;
  
var decPoints = 0;
  
if (checkStr.charAt(0)=="."
    allValid 
= false;
  
for (i = 0;  i < checkStr.length;  i++)
  
{
    ch 
= checkStr.charAt(i);
    
for (j = 0;  j < checkOK.length;  j++)
      
if (ch == checkOK.charAt(j))
        
break;
    
if (j == checkOK.length)
    
{
      allValid 
= false;
      
break;
    }

    
if (ch == ".") decPoints += 1;
  }

  
if ((!allValid) || decPoints>=2)
  
{
    alert(
"月收入/缴纳:非数值");
    
return (false);
  }


  
var checkOK = "0123456789";
  
var checkStr = theForm.KCmoney.value;
  
var allValid = true;
  
var decPoints = 0;
  
var allNum = "";
  
for (i = 0;  i < checkStr.length;  i++)
  
{
    ch 
= checkStr.charAt(i);
    
for (j = 0;  j < checkOK.length;  j++)
      
if (ch == checkOK.charAt(j))
        
break;
    
if (j == checkOK.length)
    
{
      allValid 
= false;
      
break;
    }

    
if (ch != ",")
      allNum 
+= ch;
  }

  
if (!allValid)
  
{
    alert(
"起征额非整数");
    
return (false);
  }


    
if (theForm.type.value == "个人所得税计算器")
    
{
    
var basicm,totalmoney,cha,output;
    totalmoney
=document.form1.money.value;
    basicm
=document.form1.KCmoney.value;
    cha
=totalmoney-basicm;
    
if (cha<=0{output=0;}
    
if (cha>0&&cha<=500{output=cha*0.05;}
    
if (cha>500&&cha<=2000{output=cha*0.1-25;}
    
if (cha>2000&&cha<=5000{output=cha*0.15-125;}
    
if (cha>5000&&cha<=20000{output=cha*0.2-375;}
    
if (cha>20000&&cha<=40000{output=cha*0.25-1375;}
    
if (cha>40000&&cha<=60000{output=cha*0.30-3375;}
    
if (cha>60000&&cha<=80000{output=cha*0.35-6375;}
    
if (cha>80000&&cha<=100000{output=cha*0.4-10375;}
    
if (cha>100000&&cha>100000{output=cha*0.45-15375;}
    alert(
"应该缴纳="+output+""+" "+" "+":)");
    
return (false);
    }

    
if (theForm.type.value == "个人所得税反算计算器")
    
{
    
var basicm,tex,output,cha;
    tex
=document.form2.money.value;
    basicm
=document.form2.KCmoney.value;
    cha
=tex-0;
    
if (cha<=0{output=0;}
    
if (cha>0&&cha<=25{output=cha/0.05;}
    
if (cha>25&&cha<=175{output=(cha+25)/0.1;}
    
if (cha>175&&cha<=625{output=(cha+125)/0.15;}
    
if (cha>625&&cha<=3625{output=(cha+375)/0.2;}
    
if (cha>3625&&cha<=8625{output=(cha+1375)/0.25;}
    
if (cha>8625&&cha<=15625{output=(cha+3375)/0.3;}
    
if (cha>15625&&cha<=21625{output=(cha+6375)/0.35;}
    
if (cha>21625&&cha<=29625{output=(cha+10375)/0.4;}
    
if (cha>29625&&cha>29625{output=(cha+15375)/0.45;}    
    output
=output+(basicm-0);
    alert(
"本月收入="+output+""+" "+" "+":)");
    
return (false);
    }

}



function FrontPage_Form_To24(theForm)  
{
  
var calculatetype = "ABCDEF";
  
var checkStr1 = theForm.int1.value;
  
var checkStr2 = theForm.int2.value;
  
var checkStr3 = theForm.int3.value;
  
var checkStr4 = theForm.int4.value;
  
if (CheckErr(checkStr1))
  
{
    alert(
"请重新输入第一个数值");
    
return (false);
  }

  
if (CheckErr(checkStr2))
  
{
    alert(
"请重新输入第二个数值");
    
return (false);
  }

  
if (CheckErr(checkStr3))
  
{
    alert(
"请重新输入第三个数值");
    
return (false);
  }

  
if (CheckErr(checkStr4))
  
{
    alert(
"请重新输入第四个数值");
    
return (false);
  }
 
  
for (chl = 1;  chl <= 4;  chl++)        //060320 Update by Jackie:整理函数的注释
  {        
        
for (chm = 1;  chm <= 3;  chm++)
        
{
         checkStr 
= checkStr1+checkStr2+checkStr3+checkStr4;//假设成"1234"
         int1=checkStr.charAt(chl-1);
         checkStr
=checkStr.substr(0,chl-1)+checkStr.substr(chl,4-chl);//此时checkStr为3位,last:checkStr="123"
         int2=checkStr.charAt(chm-1);
         checkStr
=checkStr.substr(0,chm-1)+checkStr.substr(chm,3-chm);//此时checkStr为2位,last:checkStr="12"
         int3=checkStr.charAt(0);
         int4
=checkStr.charAt(1);  
         
//通过两个FOR循环,实现int1~int4能取到字串"1234"的任意组合(计12种)
         //12种组合分别为(按照int1+int2+int3+int4得顺序):    1234,1324,1423,    2134,2314,2413,    3124,3214,3412, 4123,4213,4312
         
                 
for (l = 0;  l < calculatetype.length;  l++)//验证其中1个组合是否能算出24点?
                 {
                   tmp1 
= cal(int1,int2,calculatetype.charAt(l))
                   strtmp1 
= show(int1,int2,calculatetype.charAt(l))
                    
for (m = 0;  m < calculatetype.length;  m++)
                    
{
                      tmp2 
= cal(tmp1,int3,calculatetype.charAt(m))
                      strtmp2 
= show(strtmp1,int3,calculatetype.charAt(m))
                            
for (n = 0;  n < calculatetype.length;  n++)
                            
{
                              tmp3 
= cal(tmp2,int4,calculatetype.charAt(n))
                              strtmp3 
= show(strtmp2,int4,calculatetype.charAt(n))
                              
if ((tmp3-24<0.001&& (tmp3-24>-0.001))
                              
{
                                 alert(
"24="+strtmp3+" "+":)");
                                 
return (false); 
                              }

                            }

                    }

                }
//end for (l = 0;  l < calculatetype.length;  l++)                  
        }
   
  }

  alert(
"Jackie算不出来"+" "+":(");
  
return (false); 
}


function CheckErr(Inputstr)  
{
  
var checkOK = "0123456789";
  
var Validator = false;
  
if ((Inputstr.length>1|| (Inputstr.length==0))
    
return (true); 
  
for (j = 0;  j < checkOK.length;  j++)
    
if (Inputstr == checkOK.charAt(j))
    
break;
  
if (j == checkOK.length)
      Validator 
= true;  
  
return (Validator); 
}

function cal(a,b,type)  
{
  a 
-= 0;
  b 
-= 0;
  
if (type=="A")  c = a+b;
  
if (type=="B")  c = a-b;
  
if (type=="C")  c = b-a;
  
if (type=="D")  c = a*b;
  
if ((type=="E"&& b==0)  c = 9999;
  
if ((type=="E"&& b!=0)  c = a/b;
  
if ((type=="F"&& a==0)  c = 9999;
  
if ((type=="F"&& a!=0)  c = b/a; 
  
return (c); 
}

function show(a,b,type)  
{
  
//a -= 0;
  //b -= 0;
  if (type=="A")  c = "("+a+"+"+b+")";
  
if (type=="B")  c = "("+a+"-"+b+")";
  
if (type=="C")  c = "("+b+"-"+a+")";
  
if (type=="D")  c = a+"*"+b;
  
if ((type=="E"&& b==0)  c = 9999;
  
if ((type=="E"&& b!=0)  c = a+"/"+b;
  
if ((type=="F"&& a==0)  c = 9999;
  
if ((type=="F"&& a!=0)  c = b+"/"+a; 
  
return (c); 
}

//--></script>

<title>个人所得税计算器_Jackie060219</title>
</head>

<body>


<form name="form1" onsubmit="return FrontPage_Form_Validator(this)">
  
<div align="center"><center><table border="1" width="350" cellpadding="4" cellspacing="0"
  bordercolor
="#bbddff" style="FONT-SIZE: 9pt; FONT-FAMILY: 新细明体">
    
<tr>
      
<td><div align="center"><center><p><span style="FONT-SIZE: 11pt; FONT-FAMILY: 新细明体"><font
      color
="#ff0000">个人所得税计算器<INPUT size=18 
      name
=type 
      value
=个人所得税计算器 disabled readOnly></font></span></center></P></div></td>
    
</tr>
    
<tr align="middle">
      
<td><span style="FONT-SIZE: 11pt; FONT-FAMILY: 新细明体">请输入您的月收入:</span>&nbsp;&nbsp;&nbsp;&nbsp;<input
       
      name
="money" size="18"><span style="FONT-SIZE: 11pt; FONT-FAMILY: 新细明体"></span></td>
    
</tr>
    
<tr align="middle">
      
<td><span style="FONT-SIZE: 11pt; FONT-FAMILY: 新细明体">当地个人所得税起征额:</span><input
      name
="KCmoney" size="18" ><span style="FONT-SIZE: 11pt; FONT-FAMILY: 新细明体"></span><br>(例如8001000, 上海新标准是1600)</td>
    
</tr>
    
<tr align="middle">
      
<td bgcolor="#88c4ff"><input type="submit" name="sub" value="计算"
      
&nbsp;&nbsp;&nbsp;&nbsp;><input type="reset" value="重新输入" id=reset1 name=reset1></td>
    
</tr>
  
</table>
  
</center></div>
</form>

<form name="form2" onsubmit="return FrontPage_Form_Validator(this)">
  
<div align="center"><center><table border="1" width="350" cellpadding="4" cellspacing="0"
  bordercolor
="#bbddff" style="FONT-SIZE: 9pt; FONT-FAMILY: 新细明体">
    
<tr>
      
<td><div align="center"><center><p><span style="FONT-SIZE: 11pt; FONT-FAMILY: 新细明体"><font
      color
="#ff0000">个人所得税反算计算器<INPUT disabled readOnly size=18 
      value
=个人所得税反算计算器 name=type></font></span></center></P></div></td>
    
</tr>
    
<tr align="middle">
      
<td><span style="FONT-SIZE: 11pt; FONT-FAMILY: 新细明体">请输入您的月缴纳所得税:</span>&nbsp;&nbsp;&nbsp;&nbsp;<input
        
      name
="money" size="18"><span style="FONT-SIZE: 11pt; FONT-FAMILY: 新细明体"></span></td>
    
</tr>
    
<tr align="middle">
      
<td><span style="FONT-SIZE: 11pt; FONT-FAMILY: 新细明体">当地个人所得税起征额:</span><input
      name
="KCmoney" size="18" ><span style="FONT-SIZE: 11pt; FONT-FAMILY: 新细明体"></span><br>(例如8001000, 上海新标准是1600)</td>
    
</tr>
    
<tr align="middle">
      
<td bgcolor="#88c4ff"><input type="submit" name="sub" value="计算"
      
&nbsp;&nbsp;&nbsp;&nbsp;><input type="reset" value="重新输入" id=reset2 name=reset2></td>
    
</tr>
  
</table>
  
</center></div>
</form>

<form name="form3" onsubmit="return FrontPage_Form_To24(this)">
  
<div align="center"><center><table border="1" width="350" cellpadding="4" cellspacing="0"
  bordercolor
="#bbddff" style="FONT-SIZE: 9pt; FONT-FAMILY: 新细明体">
    
<tr align="middle">
      
<td><span style="FONT-SIZE: 11pt; FONT-FAMILY: 新细明体"><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 新细明体"><FONT 
      color
=#ff0000>输入4个一位数,计算24点</FONT></SPAN></span></td>
    
</tr>
    
<tr align="middle">
      
<td><span style="FONT-SIZE: 11pt; FONT-FAMILY: 新细明体"><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 新细明体"><INPUT 
      size
=18 name=int1></SPAN><INPUT size=18 name=int2></span></td>
    
</tr>
    
<tr align="middle">
      
<td><span style="FONT-SIZE: 11pt; FONT-FAMILY: 新细明体"><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: 新细明体"><INPUT 
      size
=18 name=int3></SPAN><INPUT size=18 name=int4></span></td>
    
</tr>
    
<tr align="middle">
      
<td bgcolor="#88c4ff"><input type="submit" name="sub" value="计算"
      
&nbsp;&nbsp;&nbsp;&nbsp;><input type="reset" value="重新输入" id=reset1 name=reset1></td>
    
</tr>
  
</table>
  
</center></div>
</form>
<a href="http://www.speakeasy.net/speedtest/">
<img src="http://www.speakeasy.net/images/speedtest/gifs/speedtest_120x60.gif" width="120" height="60" border="0" alt="Speakeasy Speed Test">
</a>
</body>
</html>
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章