こんばんは
おもしろそうなので作って見ました。
曜日鑑別法を実相しています。
ここではTABが使えないので全角の空白が入っていますので、それは置換してしてください。
解らないところがあれば、補足してください。
では、お試しあれ。
<HTML>
<BODY onLoad="toDay()">
<SCRIPT LANGUAGE=JavaScript>
<!--
function weekDay(y,m,d)
{ // 曜日を求めます。
if ( m < 3 ){
y -- ;
m += 12 ;
}
return (y+Math.floor(y/4)-Math.floor(y/100)+Math.floor(y/400)+Math.floor((m*13+8)/5)+d)%7 ;
}
function maxDay(y,m)
{ // 最大日数を求めます。
s = weekDay(y,m,1);
if ( m == 12 ){
y ++ ;
m = 1 ;
} else {
m ++ ;
}
e = weekDay(y,m,1);
if ( e >= s ){
return 28+e-s ;
} else {
return 35+e-s ;
}
}
function changeDay()
{ // 日付を更新します。
var y = eval(document.date.year.value);
var m = eval(document.date.month.selectedIndex+1);
var d = eval(document.date.day.selectedIndex+1);
var maxd = maxDay(y,m);
if ( d > maxd ){
d = maxd ;
document.date.day.selectedIndex = d-1 ;
}
var i ;
for (i=0 ;i<maxd ;i++){
document.date.day.options[i].text = i+1 ;
}
for ( ;i<31 ;i++){
document.date.day.options[i].text = "" ;
}
document.date.week.selectedIndex = weekDay(y,m,d);
return false ;
}
function toDay()
{ // 今日の日付に設定します。
d = new Date();
document.date.year.value = d.getFullYear();
document.date.month.selectedIndex = d.getMonth();
document.date.day.selectedIndex = d.getDate()-1;
changeDay();
}
// -->
</SCRIPT>
<FORM NAME=date>
<INPUT NAME=year SIZE=4 onChange="changeDay()">
年
<SELECT NAME=month onChange="changeDay()">
<OPTION>1<OPTION>2<OPTION>3<OPTION>4<OPTION>5<OPTION>6<OPTION>7
<OPTION>8<OPTION>9<OPTION>10<OPTION>11<OPTION>12</SELECT>
月
<SELECT NAME=day onChange="changeDay()">
<OPTION>1<OPTION>2<OPTION>3<OPTION>4<OPTION>5<OPTION>6<OPTION>7<OPTION>8<OPTION>9<OPTION>10<OPTION>11
<OPTION>12<OPTION>13<OPTION>14<OPTION>15<OPTION>16<OPTION>17<OPTION>18<OPTION>19<OPTION>20<OPTION>21
<OPTION>22<OPTION>23<OPTION>24<OPTION>25<OPTION>26<OPTION>27<OPTION>28<OPTION>29<OPTION>30<OPTION>31</SELECT>
日
<SELECT NAME=week disabled>
<OPTION>日曜日<OPTION>月曜日<OPTION>火曜日<OPTION>水曜日<OPTION>木曜日<OPTION>金曜日<OPTION>土曜日</SELECT>
</FORM>
</BODY>
</HTML>