JavaScript实现简易的天数计算器实例【附演示源码下载】

  

本文实例讲述了JavaScript实现简易的天数计算器。分享给大家供大家参考,具体如下:

  

运行效果图如下:

  

 JavaScript实现简易的天数计算器实例【附演示源码下载】“> </p>
  <p> <强>功能:</强> </p>
  <p> 1。支持选择日期;<br/>
  2. 自动计算闰年;<br/>
  3.支持使用当前日期。</p>
  <p> <强>代码:</强> </p>
  <p> (1) html文件:</p>
  
  <pre类=   & lt; !DOCTYPE html>   & lt; html lang=癳n”比;   & lt; head>   & lt;元charset=皍tf - 8”比;   & lt; title>简易天数计算器& lt;/title>   & lt;脚本type=" text/javascript " src=" https://www.yisu.com/zixun/dayCounter.js "祝辞& lt;/script>   & lt;/head>   & lt; body>   & lt; form>   开始日期   & lt;选择id=澳辍痹?   & lt;/select>   年   & lt;选择id="月"比;   & lt;/select>   月   & lt;选择id="天"在   & lt;/select>   日   & lt;输入类型=案囱】颉眎d=皊tartCb”在使用当前日期   & lt; br/比;   结束日期   & lt;选择id=皔ear2”比;   & lt;/select>   年   & lt;选择id=癿onth3”比;   & lt;/select>   月   & lt;选择id=癲ay2”比;   & lt;/select>   日   & lt;输入类型=案囱】颉眎d=癳ndCb”在使用当前日期   & lt; br/比;   & lt; br/比;   & lt;/form>   & lt; button>计算天数& lt;/button>   & lt; p id=" dayCountText "祝辞& lt;/p>   & lt;脚本type=" text/javascript祝辞/* *   *根据年和月更新日列表。   * @param国旗1 -开始日期2 -结束日期   */函数更新(国旗){   如果(标志==1){   updateDaySelect([‘年’,‘月’,'天']);   其他}{   updateDaySelect ([‘year2’,‘month3’, ' day2 ']);   }   }//计算天数   函数calDays (id) {   var s=getDateStr([‘年’,‘月’,'天']);   var e=getDateStr ([‘year2’,‘month3’, ' day2 ']);   . getelementbyid (id)。innerHTML=calDayCount (s、e);   }//使用当前日期作为开始日期   函数useTodayAsStart () {   检查var=. getelementbyid (startCb)支票;   useToday(检查);   }//使用当前日期作为结束日期   函数useTodayAsEnd () {   检查var=. getelementbyid (endCb)支票;   useToday(2,检查);   }/* *   *使用当前日期。   * @param国旗1 -开始日期2 -结束日期   * @param检查真的——使用当前时期错:取消使用当前日期   */检查函数useToday(国旗){   var元素;   如果(标志==1){   元素=getElements([‘年’,‘月’,'天']);   其他}{   元素=getElements ([‘year2’,‘month3’, ' day2 ']);   }   如果检查(){//使用当前日期   var ymd=getTodayYMD ();   var;//设置年   var yEle=[0]元素;   (=0;& lt;yEle.options.length;+ +){   如果(yEle.options [a]。值=https://www.yisu.com/zixun/=ymd [0]) {   yEle.options [a]。选择=把≡瘛?   打破;   }   }//设置月   var mEle=元素[1];   (=0;& lt;mEle.options.length;+ +){   如果(mEle.options [a]。值=https://www.yisu.com/zixun/=ymd [1] + 1) {   mEle.options [a]。选择=把≡瘛?   打破;   }   }//根据年和月更新日列表   更新(国旗);//设置日   var削除=元素[2];   (=0;& lt;dEle.options.length;+ +){   如果(dEle.options [a]。值=https://www.yisu.com/zixun/=ymd [2]) {   dEle.options [a]。选择=把≡瘛?   打破;   }   }   }   (var=0;我& lt;elements.length;我+ +){   元素[我]。禁用=检查& # 63;“禁用”:定义;   }   }   & lt;/script>   & lt;/body>   & lt;/html>      之前      

(2)外部js文件:

     /* *   * dayCounter。   *由杰克16-11-29。   *//* *   *通过元素的id获取元素。   * @param arr id数组。   */函数getElements (arr) {   var元素=[];   (var=0;我& lt;arr.length;我+ +){   elements.push (. getelementbyid (arr[我]));   }   返回元素;   }//初始化年月日   函数initView (arr) {   var=getElements元素(arr);//年   (var=2048;我在=1949;我(){   var=document.createElement选项(“选项”);   选择。setAttribute(“价值””、“+ i);   option.appendChild(文档。createTextNode (" + i));//默认选中2017年   如果(i==2017) {   选择。setAttribute(“选择”,“选择”)   }   元素[0].appendChild(选项);   }//月   (var=1;& lt;=12;+ +){   var optionM=document.createElement(“选项”);   optionM。setAttribute(“价值”、“" +);   optionM.appendChild(文档。createTextNode ((& lt;10 & # 63;" 0 ":" ")+));   元素[1].appendChild (optionM);   }//日   initDay(元素[2],31日1);   }   函数initDay(天,dayCount selectedValue) {   (var i=1;我& lt;=dayCount;我+ +){   var optionD=document.createElement(“选项”);   optionD。setAttribute(“价值””、“+ i);   如果(i==selectedValue) {   optionD。setAttribute(“选择”,“选择”);   }   optionD.appendChild(文档。createTextNode((我& lt;10 & # 63;“0”:“”)+ i));   day.appendChild (optionD);   }   }//当年和月发生变化时,更新日   函数updateDaySelect (arr) {   var=getElements元素(arr);//选中年   var y=元素[0].options[元素[0].selectedIndex] value;//选中月   var m=元素[1].options[元素[1].selectedIndex] value;   如果(m==1 | | 3 m==| | m==5 | | 7 m==| | 8 m==| | 10 m==| | m==12) {   setupDay(元素[2],31);   }else if (m==4 | | 6 m==| | 9 m==| | m==11) {   setupDay(元素[2],30);   其他}{//判断是否为闰年   如果(y % 4==0,,y % 100 !=0) | | y % 400==0) {   setupDay(元素[2],29);   其他}{   setupDay(元素[2],28);   }   }   }//更新日选择元素   函数setupDay(天,dayCount) {//判断是否需要刷新   如果(day.options。长度==dayCount) {//无需刷新   返回;   }//原来选中的日   var oldValue=https://www.yisu.com/zixun/day.options [day.selectedIndex] value;   如果(oldValue> dayCount) {   oldValue=dayCount;   }//首先移除所有子元素   我(var=day.childNodes。长度- 1;我>=0;我(){   day.removeChild (day.childNodes.item(我))   }//添加元素   initDay(天,dayCount oldValue);   }   函数getSelectedText(避署){   返回ele.options [ele.selectedIndex]。text;   }   函数getDateStr (arr) {   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

JavaScript实现简易的天数计算器实例【附演示源码下载】