|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Slava Ivanov 2:5020/400 23 Apr 2003 22:30:41 To : Konstantin Tokar Subject : Re: даты, там, всякие... --------------------------------------------------------------------------------
Konstantin Tokar пишет:
> В принципе правильно, но 1900-й год например не високосный, надо учесть
> и такие годы.
> "...По новому стилю високосным является каждый год, число которого
> делится на 4 без остатка, за исключением тех годов, числа которых
> оканчиваются на 2 нуля, но не делятся на 400 (например, годы 1700, 1800,
> 1900 не являются високосными) ..."
Согласен (я просто об этом не знал).
Hо ведь не сложно добавить и эту проверку. См. ниже
($month, $year) = (localtime)[4,5];
$year+=1900;
if (($year/4)=~/^\d+$/ && (($year=~/00$/)&&(($year/400)=~/^\d+$/)))
{ $feb = 29 } else { $feb = 28 }
@months = (31,$feb,31,30,31,30,31,31,30,31,30,31);
print "Год $year\nВ этом месяце $months[$month] дн.\n";
P.S. Еще надо знать конечную задачу, т.к. предыдущий код прекрасно
работал для годов с 1901 до 2099. Может большее и не требуется.
--- ifmail v.2.15dev5
* Origin: FKT (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/54249d771145.html, оценка из 5, голосов 10
|