我的漫漫程序之旅

          專注于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 々上善若水々 閱讀(1680) 評論(0)  編輯  收藏 所屬分類: JavaScript

          主站蜘蛛池模板: 云和县| 竹山县| 昆明市| 秦皇岛市| 苍南县| 察隅县| 建始县| 勃利县| 吉安县| 通海县| 西乌| 陈巴尔虎旗| 海林市| 涪陵区| 两当县| 绥阳县| 日喀则市| 纳雍县| 凤山县| 永福县| 射阳县| 新闻| 连山| 确山县| 齐齐哈尔市| 黔江区| 泰宁县| 武山县| 贡觉县| 新乡市| 镶黄旗| 错那县| 饶河县| 平凉市| 灵丘县| 巨鹿县| 南陵县| 嘉鱼县| 四会市| 南乐县| 龙口市|