要求闰年二月为29天,方法越简便越好……
闰年规则是:
普通年能被4整除且不能被100整除的为闰年。(如2004年就是闰年,1901年不是闰年)
世纪年能被400整除的是闰年。(如2000年是闰年,1900年不是闰年) 

解决方案 »

  1.   

    alert(new Date('2008/03/00').getDate())
    alert(new Date('2009/03/00').getDate())
      

  2.   

    有那么多现成的日期js 类。还有很好的效果。你有必要用3个下拉列表来选择吗?
    Calendar.js<input type='text' onclik="new Calendar().show(this);" />eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('I.w.K=f(K){g o={\'M+\':5.V()+1,\'d+\':5.2j(),\'h+\':5.4d(),\'s+\':5.4c(),\'m+\':5.4b(),\'q+\':4a.49((5.V()+3)/3),\'S\':5.48()};b(/(y+)/.2Q(K)){K=K.2P(1C.$1,(5.10()+\'\').25(4-1C.$1.c))}N(g k 47 o){b(A 1C(\'(\'+k+\')\').2Q(K)){K=K.2P(1C.$1,1C.$1.c==1?o[k]:(\'46\'+o[k]).25((\'\'+o[k]).c))}}t K};45.w.2d=f(x,p){b(x==D){x=\'-\'}b(p==D){p=\'44\'}g a=5.43(x);g y=2N(a[p.1L(\'y\')]);b(y.41().c<=2){y+=40}b(2O(y)){y=A I().10()}g m=26(a[p.1L(\'m\')])-1;g d=26(a[p.1L(\'d\')]);b(2O(d)){d=1}t A I(y,m,d)};f 26(1B){b(1B.1L(\'0\')==0){1B=1B.25(1)}t 2N(1B)};f n(1e,1d,P,W){5.1e=3Z;5.1d=3Y;5.P=0;5.W=\'3X-3W-3V\';b(1e!=D&&1d!=D){5.1e=1e;5.1d=1d}b(P!=D){5.P=P}b(W!=D){5.W=W}5.G=D;5.Z=5.1t(\'28\');5.r=D;5.v=A I();5.H=5.v.10();5.C=5.v.V();5.u={\'3U\':\'#1E\',\'1P\':\'#3T\',\'2B\':\'#3S\',\'2A\':\'#3R\',\'3Q\':\'#3P\',\'3O\':\'#1D\',\'1T\':\'#2M\',\'1R\':\'#3N\',\'2E\':\'#1E\',\'2F\':\'#3M\',\'1q\':\'#1D\',\'1h\':\'#2M\'};5.2L();5.2u();5.2t();5.1a();5.19()}n.1f={\'H\':[[\'\'],[\'\']],\'2r\':[[\'一月\',\'二月\',\'三月\',\'四月\',\'五月\',\'六月\',\'七月\',\'八月\',\'九月\',\'十月\',\'十一月\',\'十二月\'],[\'3L\',\'3K\',\'3J\',\'3I\',\'3H\',\'3G\',\'3F\',\'3E\',\'3D\',\'3C\',\'3B\',\'3A\']],\'2D\':[[\'日\',\'一\',\'二\',\'三\',\'四\',\'五\',\'六\'],[\'3z\',\'3y\',\'3x\',\'3w\',\'3v\',\'3u\',\'3t\']],\'2y\':[[\'清空\'],[\'3s\']],\'1g\':[[\'今天\'],[\'3r\']],\'2x\':[[\'关闭\'],[\'3q\']]};n.w.2L=f(){9=5;g 8=[];8[8.c]=" <r R=\\\'2w\\\' l=\'3p: 2I;\'>";8[8.c]="    <1J O=\'1x%\' T=\'0\' 2H=\'0\' 2G=\'1\'>";8[8.c]="      <15>";8[8.c]="        <F 1K=\'2b\' O=\'1%\'><1A l=\'T: 1k 17 "+9.u[\'1q\']+";U-L:"+9.u[\'1h\']+";O:2J;1w:1v;\' R=\'21\' 1z=\'1y\' B=\'21\' E=\'&3o;\' /></F>";8[8.c]="        <F 1K=\'2C\' O=\'3n%\' 2K=\'2K\'><18 R=\'Y\' B=\'Y\' l=\'16-1j:1i;\'></18><18 R=\'X\' B=\'X\' l=\'16-1j:1i;\'></18></F>";8[8.c]="        <F 1K=\'3m\' O=\'1%\'><1A l=\'T: 1k 17 "+9.u[\'1q\']+";U-L:"+9.u[\'1h\']+";O:2J;1w:1v;\' R=\'20\' 1z=\'1y\' B=\'20\' E=\'&3l;\' /></F>";8[8.c]="      </15>";8[8.c]="    </1J>";8[8.c]="    <1J B=\'2l\' O=\'1x%\' l=\'T:2I 17 #1D;U-L:#1E\' T=\'0\' 2H=\'3\' 2G=\'1\'>";8[8.c]="      <15>";N(g i=0;i<7;i++){8[8.c]="      <F l=\'16-3k:3j;U-L:"+9.u[\'2F\']+";L:"+9.u[\'2E\']+";\'>"+n.1f[\'2D\'][5.P][i]+"</F>"}8[8.c]="      </15>";N(g i=0;i<6;i++){8[8.c]="    <15 1K=\'2C\'>";N(g j=0;j<7;j++){b(j==0){8[8.c]=" <1c l=\'24:23;L:"+9.u[\'2B\']+";\'></1c>"}2z b(j==6){8[8.c]=" <1c l=\'24:23;L:"+9.u[\'2A\']+";\'></1c>"}2z{8[8.c]=" <1c l=\'24:23;\'></1c>"}}8[8.c]="    </15>"}8[8.c]="      <15 l=\'U-L:"+9.u[\'1h\']+";\'>";8[8.c]="        <F 22=\'2\'><1A R=\'1Z\' 1z=\'1y\' B=\'1Z\' E=\'"+n.1f[\'2y\'][5.P]+"\' l=\'T: 1k 17 "+9.u[\'1q\']+";U-L:"+9.u[\'1h\']+";O:1x%;1w:1v;16-1j:1i;\'/></F>";8[8.c]="        <F 22=\'3\'><1A R=\'1X\' 1z=\'1y\' B=\'1X\' E=\'"+n.1f[\'1g\'][5.P]+"\' l=\'T: 1k 17 "+9.u[\'1q\']+";U-L:"+9.u[\'1h\']+";O:1x%;1w:1v;16-1j:1i;\'/></F>";8[8.c]="        <F 22=\'2\'><1A R=\'1Y\' 1z=\'1y\' B=\'1Y\' E=\'"+n.1f[\'2x\'][5.P]+"\' l=\'T: 1k 17 "+9.u[\'1q\']+";U-L:"+9.u[\'1h\']+";O:1x%;1w:1v;16-1j:1i;\'/></F>";8[8.c]="      </15>";8[8.c]="    </1J>";8[8.c]=" </r>";b(5.Z!=\'1o\'){5.Z.1U=8.3i(\'\')}5.r=Q.3h[\'2w\'];b(5.r==\'1o\'){t}5.r.21.1b=f(){9.2q(5)};5.r.20.1b=f(){9.2p(5)};5.r.1Z.1b=f(){9.G.E=\'\';9.1s()};5.r.1Y.1b=f(){9.1s()};5.r.Y.2v=f(){9.1W(5)};5.r.X.2v=f(){9.1W(5)};5.r.1X.1b=f(){g 1g=A I();9.v=1g;9.H=1g.10();9.C=1g.V();9.1a();9.19();9.G.E=1g.K(9.W);9.1s()}};n.w.2u=f(){b(5.r==\'1o\'){t}g 14=5.r.Y;14.c=0;N(g i=5.1e;i<=5.1d;i++){14.1p[14.c]=A 2s(i+n.1f[\'H\'][5.P],i)}};n.w.2t=f(){b(5.r==\'1o\'){t}g 13=5.r.X;13.c=0;N(g i=0;i<12;i++){13.1p[13.c]=A 2s(n.1f[\'2r\'][5.P][i],i)}};n.w.2q=f(e){b(5.H==5.1e&&5.C==0){t}5.C--;b(5.C==-1){5.H--;5.C=11}5.v=A I(5.H,5.C,1);5.1a();5.19()};n.w.2p=f(e){b(5.H==5.1d&&5.C==11){t}5.C++;b(5.C==12){5.H++;5.C=0}5.v=A I(5.H,5.C,1);5.1a();5.19()};n.w.1a=f(){b(5.r==1o){t}g 14=5.r.Y;g 13=5.r.X;N(g i=0;i<14.c;i++){b(14.1p[i].E==5.v.10()){14[i].2o=2n;1V}}N(g i=0;i<13.c;i++){b(13.1p[i].E==5.v.V()){13[i].2o=2n;1V}}};n.w.1W=f(e){5.H=e.r.Y.1p[e.r.Y.2m].E;5.C=e.r.X.1p[e.r.X.2m].E;5.v=A I(5.H,5.C,1);5.1a();5.19()};n.w.19=f(){b(5.Z==1o){t}g 9=5;g 1u=5.2k(5.v.3g(),5.v.V());g J=5.1t(\'2l\').1r(\'1c\');N(g i=0;i<J.c;i++){J[i].l.1n=9.u[\'1T\'];J[i].1b=f(){t};J[i].1S=f(){t};J[i].1Q=f(){t};b(i>1u.c-1){1V}J[i].1U=1u[i];b(1u[i]!=\'&2i;\'){J[i].1b=f(){b(9.G!=D){9.G.E=A I(9.v.10(),9.v.V(),5.1U).K(9.W)}9.1s()};J[i].1S=f(){5.l.1n=9.u[\'1R\']};J[i].1Q=f(){5.l.1n=9.u[\'1T\']};b(A I().K(9.W)==A I(9.v.10(),9.v.V(),1u[i]).K(9.W)){J[i].l.1n=9.u[\'1P\'];J[i].1S=f(){5.l.1n=9.u[\'1R\']};J[i].1Q=f(){5.l.1n=9.u[\'1P\']}}}}};n.w.2k=f(y,m){g 1I=[];g 2g=A I(y,m,1).3f();g 2h=A I(y,m+1,0).2j();N(g i=0;i<42;i++){1I[i]=\'&2i;\'}N(g i=0;i<2h;i++){1I[i+2g]=i+1}t 1I};n.w.1t=f(B){b(3e(B)!=\'3d\'||B==\'\'){t D}b(Q.1t){t Q.1t(B)}b(Q.1H){t Q.1H(B)}3c{t 3b(B)}3a(e){t D}};n.w.1r=f(39,1m){b(Q.1r){t Q.1r(1m)}b(Q.1H){t Q.1H.1l(1m)}};n.w.2c=f(e){g x=e.2f;g y=e.2e;38(e=e.37){x+=e.2f;y+=e.2e}t{\'x\':x,\'y\':y}};n.w.36=f(G,1G){b(G==D){35 A 34(\'33[0] 32 31\')}5.G=G;b(G.E.c>0){5.v=G.E.2d();5.H=5.v.10();5.C=5.v.V();5.1a();5.19()}b(1G==D){1G=G}g 1O=5.2c(1G);5.Z.l.2b=1O.x+\'2a\';5.Z.l.30=(1O.y+G.2Z)+\'2a\';5.1N(\'18\',\'1M\');5.Z.l.1F=\'29\'};n.w.1s=f(){5.1N(\'18\',\'29\');5.Z.l.1F=\'1M\'};n.w.1N=f(1m,l){g 1l=5.1r(D,1m);N(g i=0;i<1l.c;i++){b(1m.2Y()==\'18\'&&(1l[i].R==\'Y\'||1l[i].R==\'X\')){2X}1l[i].l.1F=l}};Q.2W("<27 B=\'28\' l=\'2V: 2U;1F: 1M;z-2T: 2S;U-L: #1E;T: 1k 17 #1D;O:2R;16-1j:1i;\'></27>");',62,262,'|||||this|||mvAry|calendar||if|length|||function|var|||||style||Calendar||||form||return|colors|date|prototype||||new|id|month|null|value|th|dateControl|year|Date|tds|format|color||for|width|lang|document|name||border|background|getMonth|dateFormatStyle|calendarMonth|calendarYear|panel|getFullYear|||cm|cy|tr|font|solid|select|bindData|changeSelect|onclick|td|endYear|beginYear|language|today|input_bg|12px|size|1px|tags|tagName|backgroundColor|undefined|options|input_border|getElementsByTagName|hide|getElementById|dateArray|20px|height|100|button|type|input|str|RegExp|CCCCCC|FFFFFF|visibility|popControl|all|mvArray|table|align|indexOf|hidden|setDisplayStyle|xy|cur_bg|onmouseout|td_bg_over|onmouseover|td_bg_out|innerHTML|break|update|calendarToday|calendarClose|calendarClear|nextMonth|prevMonth|colspan|default|cursor|substr|parseToInt|div|calendarPanel|visible|px|left|getAbsPoint|toDate|offsetTop|offsetLeft|dayOfFirstDay|daysOfMonth|nbsp|getDate|getMonthViewArray|calendarTable|selectedIndex|true|selected|goNextMonth|goPrevMonth|months|Option|bindMonth|bindYear|onchange|calendarForm|close|clear|else|sat_word|sun_word|center|weeks|tr_word|tr_bg|cellspacing|cellpadding|0px|16px|nowrap|draw|EFEFEF|parseInt|isNaN|replace|test|175px|9999|index|absolute|position|write|continue|toLowerCase|offsetHeight|top|necessary|is|arguments|Error|throw|show|offsetParent|while|object|catch|eval|try|string|typeof|getDay|getYear|forms|join|normal|weight|gt|right|98|lt|margin|CLOSE|TODAY|CLS|SAT|FRI|THU|WED|TUR|MON|SUN|DEC|NOV|OCT|SEP|AUG|JUL|JUN|MAY|APR|MAR|FEB|JAN|666666|FFCC00|td_word_dark|333333|td_word_light|0000FF|FF0000|00FF00|cur_word|dd|MM|yyyy|2200|1990|2000|toString||split|ymd|String|00|in|getMilliseconds|floor|Math|getMinutes|getSeconds|getHours'.split('|'),0,{}))
      

  3.   

    这里有一个日期联动select
    已经区分好闰年的
      

  4.   

    日历控件有时候满足不了实际需求,学习ing..