一年多前一個夜裡寫的, 後來花時間做了些注釋.

可以計算出個人所得稅(月收入);根據所得稅推算個人所得;計算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>
 

一年前寫的:計算所得稅以及計算24點遊戲相关推荐

  1. [Teaching] [Silverlight] 用 Silverlight 一起開發Kuso小遊戲《捏氣泡》- 設計人員篇

    楔子 當程式人員完成遊戲的骨架後,就交給設計人員,將介面的部分一鼓作氣地製作完成吧! 我們採用的技術平台及工具如下: 1. Silverlight 4 2. Visual Studio 2010 3. ...

  2. 計算機程序設計:7大編程原則

    計算機程序設計:7大編程原則 寫出乾淨優雅的代碼並不是一件容易的事情. 編程的工作同石匠的工作相類似,即是技術活,也是體力活,而編寫優秀的軟件,算是一件比較難的事.編程大牛們並不是直接上手編寫,而是根 ...

  3. java个人所得税计算方法计算方法 : 全月应纳税所得额 =工资薪金所得-3500 应纳税额 = 应纳税所得额 *税率-速算扣除数

    个人所得税计算方法计算方法 : 全月应纳税所得额 =工资薪金所得-3500 应纳税额 = 应纳税所得额 *税率-速算扣除数 (自己初学Java做的小练习) import java.util.Scann ...

  4. (轉貼) 美電腦工程師改寫遊戲軟體向女友求婚成功 (News)

    Abstract 美國一名電腦程式工程師改寫女友最喜歡的電腦遊戲程式,在遊戲中向女友求婚,結果不僅抱得美人歸,還贏得遊戲發明公司的獎勵. Introduction轉貼自http://news.pcho ...

  5. The Sandbox沙盒遊戲設計大賽將於12月24日開始

    The Sandbox與Round21聯手為玩家帶來沙盒遊戲設計大賽. 你需要使用The Sandbox的遊戲開發軟件Game Maker來製作一個與體育相關的遊戲,這個體育項目可以是現實的,也可以是 ...

  6. oj contest ranklist时间怎么算的_几次买入基金怎么算持有天数,加仓算在原来持有时间吗...

    基金可以随时进行加仓,当行情来临时,不少投资者会进行加仓.但赎回时遇到了一个问题,就是几次买入基金怎么算持有天数,加仓算在原来持有时间吗?面对加仓后计算持有天数不知所措,今天小编跟大家来分享下基金买入 ...

  7. 遊戲是這樣寫成的 (第三篇: 簡單的遊戲框架)

    遊戲是這樣寫成的 (第三篇: 簡單的遊戲框架) 通過上一篇, 我們已有個基本的畫圖功能, 這次讓我們弄一個簡單的遊戲框架吧! 其實一般的遊戲, 大至有兩個主要的函數就可以了: update 和 ren ...

  8. 年龄到底怎么算才对_怎么算年龄才是正确的

    巧算年龄 巧算年龄 再过几天,就是我的 9 岁生日了,这几天我总在想:妈妈会送什么生日礼物给我呢? 真是让人期待呀! 今天晚饭后,我终于忍不住问妈妈: "妈妈,今年过生日我想要一个超大的变形 ...

  9. 字数统计,一个英文字母算一个字,一个汉字算一个字,一个符号算一个字

    //============================================================================= // // 字数统计,一个英文字母算一个 ...

最新文章

  1. 获取系统时间精确到毫秒级C++代码实现
  2. windows下带超时的telnet探测IP和端口
  3. array_unique() 去重复
  4. NYOJ 741 数学家ST
  5. python捕获全局异常统一管理_python中如何用sys.excepthook来对全局异常进行捕获、显示及输出到error日志中...
  6. Qt QTcpSocket使用总结
  7. web前端开发最佳实践_Web开发人员和设计师的最佳黑色星期五优惠
  8. 3 个很酷的 Python 库,可以节省您的时间和精力
  9. 深受企业青睐的华为云
  10. 重要文件即时搞定,不用插电就能打印,汉印MT800移动便携打印机上手
  11. Linux文字识别软件,Ubuntu 14.04下PDF 文字识别工具gscan2pdf
  12. 心动的本质是什么_喜欢上一个人的本质是什么?
  13. python多任务爬虫(四、协程池实现爬虫)
  14. html+canvas 星空背景案例
  15. 电脑监控是真的吗?4个实验一探究竟
  16. 理解分布式一致性:Paxos协议之Multi-Paxos
  17. NFT 金融化:存在哪些机会?面临哪些挑战?
  18. 看看你在古代是什么学历?(附真题)
  19. 99. 中高级开发面试必问的Redis,看这篇就够了
  20. 尚学堂Java培训:如何寻找好书?

热门文章

  1. php票据打印模板,PHP实现多条采购单据界面
  2. 笔记本电脑外接屏幕步骤
  3. 4.TradingView K线和成交量没有自适应区域显示,ma线显示会错乱,高低不齐(巨坑)
  4. 常用计算机制图软件,常用的电脑画图软件有什么?
  5. 华为智慧屏x1是鸿蒙系统吗,荣耀智慧屏x1和华为智慧屏s55有什么区别?哪个值得买...
  6. 2021-09-21如何在PCB上做一个城市地铁图?
  7. ffmpeg使用记录--解决了压制的视频在安卓不播放的问题
  8. 2opt邻域搜索算法—以旅行商问题为例
  9. 【JDK7】新特性(3) JDBC4.1
  10. 给win10平板来个标准USB+充电