一年多前一個夜裡寫的, 後來花時間做了些注釋.
可以計算出個人所得稅(月收入);根據所得稅推算個人所得;計算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> <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="計算"
><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> <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="計算"
><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="計算"
><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>
< 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> <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="計算"
><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> <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="計算"
><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="計算"
><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>