根据年月日之间的关系,自动调整可选日期数.
闰年条件: ((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;
}
}
}
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;
}
}
}
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");
}
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;
}
}
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>
<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>
分
<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> </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>
分
</tr>
<tr>
<td> </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>