comtat, в твоём примере не учитывается, что: 1583 < год < 2499 (хотя насчёт правой границы я не уверен)
Цитата(VoDevil @ 29.7.2009, 17:26 ) | Учесть високосные года и с каждым 100-м годом я слышал "что-то не так" ;) |
В http://ru.wikipedia.org/wiki/%D0%93%D1%80%D0%B8%D0%B3%D0%BE%D1%80%D0%B8%D0%B0%D0%BD%D1%81%D0%BA%D0%B8%D0%B9_%D0%BA%D0%B0%D0%BB%D0%B5%D0%BD%D0%B4%D0%B0%D1%80%D1%8C об этом говорится следующее: "Год високосен, то есть содержит 366 дней, если: 1. его номер без остатка делится на 4 и не делится на 100 или 2. его номер делится без остатка на 400." 
VoDevil, попробуй следующий код:
Код | <html> <head> <script type='text/javascript'> function leap(y){ var r=0; if (y%4==0&&y%100!=0||y%400==0) r++; return r; }
function showDays(month, year){ var ret, days; days=[31, 28+leap(year), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; if (isNaN(month) || month<1 || month>12 || month!=parseInt(month) || isNaN(year) || year<1583 || year>2499 || year!=parseInt(year)) ret='Wrong Date'; else ret=days[month-1]; alert(ret); // <-- Just test return ret; } </script> </head> <!-- Just test: --> <body onload='showDays(2, 1900);'> </body> </html>
|
|