|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Valery Kondakoff 2:5020/163 02 Feb 2002 05:16:42 To : All Subject : Сравнение дат? -------------------------------------------------------------------------------- Господа, помогите советом: на входе в скрипт я получаю количество дней (например, десять). Потом, я просматриваю логи за указанное количество времени и всасываю нужную информацию. Пока я решаю эту проблему так: отсчитываю десять дней назад и перевожу дату в epoch seconds. Потом, каждую встреченную в логах дату тоже перевоху в epoch seconds и сравниваю: если дата из логов больше, то начинаю "сосать" данные. В логи дата пишется так: 25 Jan 02. use Time::Local; # this hash is used, when converting verbose months to numeral (Jan = 0) @months{qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec)} = qw(0 1 2 3 4 5 6 7 8 9 10 11); $period = 10; $date = time() - (24 * 60 * 60 * $period) if $period; open(LOG, "<$logname") || die "Can't open $logname $!"; while(<LOG>) { if (/-{20}\s+Packed\s+on\s+((\d+)\s(\w{3})\s\d\d(\d\d))\s/i) { if(!$startdate) { $founddate = timelocal("59", "59", "23", $2, $months{$3}, $4); $date = $founddate if !$date; if ($founddate >= $date) { $startdate = $1 } } if ($startdate) { # тут что-нибудь полезное делаем } } close(LOG) || die "can't close $logname: $!"; В принципе все работает, но меня терзают смутные сомнения, что есть более эффективный способ решения проблемы сравнения дат... Поделитесь, плз, опытом! Спасибо! Best regards, Valery Kondakoff --- GoldED+/W32 1.1.5-1201 * Origin: ----> После прочтения - съесть!.. <---- (2:5020/163) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/22643c5b4225.html, оценка из 5, голосов 10
|