我的漫漫程序之旅

          專注于JavaWeb開發
          隨筆 - 39, 文章 - 310, 評論 - 411, 引用 - 0
          數據加載中……

          計算兩個日期之間的工作日和非工作日(轉自浪曦)

          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
          <HTML>
          <HEAD>
            
          <TITLE> 作者:風中葉 </TITLE>
            
          <META NAME="Generator" CONTENT="EditPlus">
            
          <META NAME="Author" CONTENT="">
            
          <META NAME="Keywords" CONTENT="">
            
          <META NAME="Description" CONTENT="">

          <SCRIPT LANGUAGE="JavaScript">
            
          //將string轉換為Date
            //str必須滿足如下格式: 2008-04-29
            function convertString2Date(str)
            
          {
             
          //用戶split分隔出數組,將包含3個元素:年,月,日
             var splitArray = str.split("-");
             
             
          // 用年,月,日構造日期對象
             // splitArray[0]-> year, splitArray[1]-> month, splitArray[2]->day
             // 這時要注意月份是從0開始的
             var date = new Date(splitArray[0], splitArray[1- 1, splitArray[2]);
            
             
          return date;
            }


            
          // 得到date1和date2之間的間隔
            // date2要比date1大
            // date要滿足如下格式: 2008-04-29
            //參數date1和date2類型應該是String或Date
            // 確保兩種類型沒有問題
            function getIntervalBetweenTwoDates(date1, date2)
            
          {
             
          var realDate1 = date1;
             
          var realDate2 = date2;
             
             
          // 如果date1是Date類型就不用轉換
             if(!(date1 instanceof Date))
             
          {
              realDate1 
          = convertString2Date(date1);
             }

             
          // 如果date2是Date類型就不用轉換
             if(!(date2 instanceof Date))
             
          {
              realDate2 
          = convertString2Date(date2);
             }

             
             
          //得到絕對值,(realDate2.getTime() - realDate1.getTime())返回的是毫秒所以要先除1000
             var interval = Math.abs((realDate2.getTime() - realDate1.getTime()))/(1000 * 60 * 60 * 24);
             
             
          return interval;
            }


            
          function listAllDatesBetweenTwoDates()
            
          {
             
          var date1 = document.getElementById("start").value;
             
          var date2 = document.getElementById("end").value;
             
          var target = document.getElementById("result");
             
          var interval = getIntervalBetweenTwoDates(date1,date2);
             
          // 轉換string為Date
             date1 = convertString2Date(date1);   
             
          var year = date1.getFullYear();
             
          var month = date1.getMonth();
             
          var date = date1.getDate();
             
          --date;
             
             
          for(var i = 0 ; i <= interval ; ++i)
             
          {
              
          ++date;
              
              
          var theDate = new Date(year, month, date);
              
          var tempYear = theDate.getFullYear();
              
          var tempMonth = theDate.getMonth() + 1;
              
          var tempDate = theDate.getDate();
              
          var day = theDate.getDay();
              
          var working = null;
              
          if(0 == day || 6 == day) // non-working day
              {
               working 
          = "non-working day";
              }

              
          else
              
          {
               working 
          = "working day";
              }

              
          var theResult = tempYear + "-" + tempMonth + "-" + tempDate + " is " + working;
              
          var div = document.createElement("div");
              
              div.innerHTML 
          = theResult;
              target.appendChild(div); 
              
             }

            }


          </SCRIPT>
          </HEAD>
          <BODY>
            
          start date:
          <input type="text" length="20" id="start"><br>
          end date:
          <input type="text" length="20" id="end"><br>
          <input type="button" onclick="listAllDatesBetweenTwoDates()" value="result">
          <div id="result"></div>
          </BODY>
          </HTML>


          posted on 2008-04-30 09:10 々上善若水々 閱讀(1682) 評論(0)  編輯  收藏 所屬分類: JavaScript

          主站蜘蛛池模板: 论坛| 腾冲县| 且末县| 行唐县| 剑川县| 英超| 墨玉县| 当涂县| 高密市| 老河口市| 余姚市| 盐城市| 晋城| 任丘市| 炎陵县| 绩溪县| 东海县| 喀喇| 石棉县| 清新县| 杭锦后旗| 临潭县| 江口县| 木兰县| 昭通市| 潜山县| 铜川市| 马鞍山市| 普兰县| 苏尼特右旗| 英超| 莱芜市| 砚山县| 墨江| 阿拉善盟| 文成县| 玉山县| 桂东县| 东莞市| 贞丰县| 英山县|