<script>
/**
* getDay 返回星期(星期天=0)
* @param
* y 年
* m 月
* d 日
* 假定传入的日期合法
* 计算范围:1752-9-14以后
*/
function getDay(y,m,d) {
y = Number(y);
m = Number(m);
d = Number(d);
if(m==1 || m==2) {
m += 12;
y--;
}
with(Math)
var t = d+2*m+floor(3*(m+1)/5)+y+floor(y/4)-floor(y/100)+floor(y/400);
return (t+1)%7;
}
function getDate(y,m) {
y = Number(y);
m = Number(m);
var a = getDay(y,m+1,1);
var b = getDay(y,m,28);
if(a<b) a += 7;
return 27+a-b;
}
//alert(getDay(2003,8,9));
</script>
<script>
function genYear(sele,year,length) {
var d = new Date();
for(i=0;i<length;i++) {
sele.options[i] = new Option(i+year,i+year)
if(i+year == d.getYear())
n = i;
}
sele.options.length = length;
sele.options[n].selected = true;
}
function genMon(sele,year) {
var d = new Date();
for(i=0;i<12;i++) {
sele.options[i] = new Option(i+1,i+1)
if(i == d.getMonth())
n = i;
}
sele.options.length = 12;
sele.options[n].selected = true;
}
function genDate(sele,year,month) {
var d = new Date(year,month,0);
var length = getDate(year,month);
d = new Date();
for(i=0;i<=length;i++) {
sele.options[i] = new Option(i+1,i+1)
if(i+1 == d.getDate())
n = i;
}
sele.options.length = length;
sele.options[n].selected = true;
}
var d = new Date();
genYear(I_Year,1993,20);
genMon(I_Mon,d.getYear());
genDate(I_Date,d.getYear(),d.getMonth()+1);
dayChar = new Array("星期日","星期一","星期二","星期三","星期四","星期五","星期六");
function seleDate(mode) {
switch(mode) {
case "year":
genDate(I_Date, I_Year.value, I_Mon.value);
break;
case "mon":
genDate(I_Date, I_Year.value, I_Mon.value);
break;
case "date":
alert(I_Year.value+"-"+I_Mon.value+"-"+I_Date.value+dayChar[getDay(I_Year.value,I_Mon.value,I_Date.value)]);
}
}