用Date操作就行了.
<form id="form1" name="form1" method="post" action="">
<table width="200" border="1" align="center">
<tr>
<td>
<select name="select" onchange="estimation()">
<script language="javascript">
var time=new Date();
var year=time.getYear();
var len=50;
var lens=year-len;
document.form1.select.length=len;
for(i=0;i<len;i++)
{
document.form1.select.options[i].text=lens+i+1;
document.form1.select.options[i].value=lens+i+1;
}
</script>
</select></td>
<td>年</td>
<td>
<select name="select2" onchange="estimation()">
<script>
document.form1.select2.length=12;
for(j=0;j<12;j++)
{
document.form1.select2.options[j].text=j+1;
document.form1.select2.options[j].value=j+1;
}
</script>
</select>
</td>
<td>月</td>
<td><select name="select3"></select></td>
<td>日</td>
</tr>
</table>
</form>
<script language="javascript">
function estimation()
{
var years=document.form1.select.options[document.form1.select.selectedIndex].value;
var months=document.form1.select2.options[document.form1.select2.selectedIndex].value;
years = parseInt(years);
months = parseInt(months)-1;
var dt = new Date(years, months+1, 1-1);
var days = dt.getDate();
var obj = document.form1.select3;
obj.innerHTML = "";
var opt;
for(var i=1;i<=days;i++){
opt = new Option(i,i);
obj.add(opt);
}
}
estimation();
</script>