一年前寫的:計算所得稅以及計算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>
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章