根据选取年月时自动调整可选日期

     根据年月日之间的关系,自动调整可选日期数.
 
    闰年条件: ((y%4==0&&y%100!=0)||y%400==0)
                
    闰年2月29天,非闰28天,其它月天数不随年数变化而变化。
 
源码:
 

<html>
<head>
<!--meta http-equiv="Content-Type" content="text/html; charset=gb2312"-->
<title>查询</title>
<style type="text/css">
<!--
.style2 {font-size: 12px;
     color: #FFFFFF; }
body {
 font-size: 12px;
 color: #FFFFFF;
 margin-left: 0px;
 margin-top: 0px;
 background-color: #336699;
}
-->
</style>
</head>
 
<script language="JavaScript">
 
function y1change(){
 var y1 = document.getElementById("year1");
 var m1 = document.getElementById("month1");
 var d1 = document.getElementById("day1");
 
 var y = Number(y1.options[y1.selectedIndex].innerText);
 var m = Number(m1.options[m1.selectedIndex].innerText);
 
 
 if((y%4==0&&y%100!=0)||y%400==0)
 {//闰年
  if(m==2&&d1.length==28) d1.options.add(new Option("29",""));
 }else{
  if(m==2&&d1.length==29){
   d1.options.remove(28);
   if(d1.selectedIndex==28) d1.selectedIndex=27;
  }
 }
 
 
}
 
function m1change(){
 var y1 = document.getElementById("year1");
 var m1 = document.getElementById("month1");
 var d1 = document.getElementById("day1");
 
 var y = Number(y1.options[y1.selectedIndex].innerText);
 var m = Number(m1.options[m1.selectedIndex].innerText);
 var day = 0;
 var len = d1.length;
 if((y%4==0&&y%100!=0)||y%400==0)
 {
  if(m==2)
  {
   day = 29;
  }else if(m==1||m==3||m==5||m==7||m==8||m==10||m==12){
   day = 31;
  }else if(m==4||m==6||m==9||m==11||m==12){
   day = 30;
  }
 }else{
  if(m==2)
  { 
   day = 28;
  }else if(m==1||m==3||m==5||m==7||m==8||m==10||m==12){
   day = 31;
  }else if(m==4||m==6||m==9||m==11||m==12){
   day = 30;
  }
 }
 
 if(len>day)
 {
  while(len>day){
   d1.options.remove(len-1);
   len = len - 1;
  }
   if(d1.selectedIndex>day) d1.selectedIndex=day-1;
 }else
 {
  while(len<day){
   d1.options.add(new Option(len+1+"",""));
   len = len + 1;
  }
 }
 
 
}
 
function y2change(){
 var y2 = document.getElementById("year2");
 var m2 = document.getElementById("month2");
 var d2 = document.getElementById("day2");
 
 var y = Number(y2.options[y2.selectedIndex].innerText);
 var m = Number(m2.options[m2.selectedIndex].innerText);
 
 
 if((y%4==0&&y%100!=0)||y%400==0)
 {//闰年
  if(m==2&&d2.length==28) d2.options.add(new Option("29",""));
 }else{
  if(m==2&&d2.length==29){
   d2.options.remove(28);
   if(d2.selectedIndex==28) d2.selectedIndex=27;
  }
 }
 
// alert("y2");
}
 
function m2change(){
 
 var y2 = document.getElementById("year2");
 var m2 = document.getElementById("month2");
 var d2 = document.getElementById("day2");
 
 var y = Number(y2.options[y2.selectedIndex].innerText);
 var m = Number(m2.options[m2.selectedIndex].innerText);
 var day = 0;
 var len = d2.length;
 if((y%4==0&&y%100!=0)||y%400==0)
 {
  if(m==2)
  {
   day = 29;
  }else if(m==1||m==3||m==5||m==7||m==8||m==10||m==12){
   day = 31;
  }else if(m==4||m==6||m==9||m==11||m==12){
   day = 30;
  }
 }else{
  if(m==2)
  { 
   day = 28;
  }else if(m==1||m==3||m==5||m==7||m==8||m==10||m==12){
   day = 31;
  }else if(m==4||m==6||m==9||m==11||m==12){
   day = 30;
  }
 }
 
 if(len>day)
 {
  while(len>day){
   d2.options.remove(len-1);
   
   len = len - 1;
  }
  if(d2.selectedIndex>day) d2.selectedIndex=day-1;
}else
 {
  while(len<day){
   d2.options.add(new Option(len+1+"",""));
   len = len + 1;
  }
 }
 
 
}
 
 
 
</script>
 
<body>
 
 
 

<table width=800 border=0>
 
 <tr>
  <td valign=bottom width=60>时间范围</td>
  <td width=360 colspan=2>
   
 
  从<select name="year1"  οnchange="y1change()">
<option>2000</option><option>2001</option><option>2002</option><option>2003</option><option>2004</option><option>2005</option><option selected>2006</option><option>2007</option><option>2008</option><option>2009</option><option>2010</option><option>2011</option><option>2012</option><option>2013</option><option>2014</option><option>2015</option><option>2016</option><option>2017</option><option>2018</option><option>2019</option><option>2020</option>
   </select>
   年
   <select name=month1 οnchange="m1change()">
   <option>1</option><option>2</option><option selected>3</option><option>4</option><option>5</option><option>6</option><option>7</option><option>8</option><option>9</option><option>10</option><option>11</option><option>12</option>
   </select>
   月
   <select name=day1 >
   <option>1</option><option>2</option><option>3</option><option>4</option><option>5</option><option selected>6</option><option>7</option><option>8</option><option>9</option><option>10</option><option>11</option><option>12</option><option>13</option><option>14</option><option>15</option><option>16</option><option>17</option><option>18</option><option>19</option><option>20</option><option>21</option><option>22</option><option>23</option><option>24</option><option>25</option><option>26</option><option>27</option><option>28</option><option>29</option><option>30</option><option>31</option>
   </select>
   日
   <select name=hour1>
   <option>0</option><option>1</option><option>2</option><option>3</option><option>4</option><option>5</option><option>6</option><option>7</option><option>8</option><option>9</option><option>10</option><option>11</option><option>12</option><option>13</option><option>14</option><option>15</option><option>16</option><option>17</option><option>18</option><option>19</option><option>20</option><option>21</option><option selected>22</option><option>23</option>
   </select>
   时
   <select name=minute1 >
   <option>0</option><option>5</option><option>10</option><option>15</option><option>20</option><option>25</option><option>30</option><option>35</option><option>40</option><option selected>45</option><option>50</option><option>55</option>
   </select>
   分
 
</td>
</tr>
<tr>
<td>&nbsp</td>
<td  width=360>
   到<select name=year2 οnchange="y2change()">
<option>2000</option><option>2001</option><option>2002</option><option>2003</option><option>2004</option><option>2005</option><option selected>2006</option><option>2007</option><option>2008</option><option>2009</option><option>2010</option><option>2011</option><option>2012</option><option>2013</option><option>2014</option><option>2015</option><option>2016</option><option>2017</option><option>2018</option><option>2019</option><option>2020</option>
   </select>
   年
   <select name=month2 οnchange="m2change()">
   <option>1</option><option>2</option><option selected>3</option><option>4</option><option>5</option><option>6</option><option>7</option><option>8</option><option>9</option><option>10</option><option>11</option><option>12</option>
   </select>
   月
   <select name=day2 >
   <option>1</option><option>2</option><option>3</option><option>4</option><option>5</option><option selected>6</option><option>7</option><option>8</option><option>9</option><option>10</option><option>11</option><option>12</option><option>13</option><option>14</option><option>15</option><option>16</option><option>17</option><option>18</option><option>19</option><option>20</option><option>21</option><option>22</option><option>23</option><option>24</option><option>25</option><option>26</option><option>27</option><option>28</option><option>29</option><option>30</option><option>31</option>
   </select>
   日
   <select name=hour2>
   <option>0</option><option>1</option><option>2</option><option>3</option><option>4</option><option>5</option><option>6</option><option>7</option><option>8</option><option>9</option><option>10</option><option>11</option><option>12</option><option>13</option><option>14</option><option>15</option><option>16</option><option>17</option><option>18</option><option>19</option><option>20</option><option>21</option><option selected>22</option><option>23</option>
   </select>
   时
   <select name=minute2 >
   <option>0</option><option>5</option><option>10</option><option>15</option><option>20</option><option>25</option><option>30</option><option>35</option><option>40</option><option selected>45</option><option>50</option><option>55</option>
   </select>
   分
 

 
</td>
 

</tr>
</table>
 
 

</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值