Сравнения
Текущий рейтинг темы: Нет
wsx
Участник Проекта
Юниксойд, сетевик
 Откуда: Казань Всего сообщений: 1084 Рейтинг пользователя: 28 Репутация пользователя: 1Дата регистрации на форуме: 14 янв. 2005
|
Профиль | ИгнорироватьNEW! Сообщение отправлено: 8 августа 2006 14:34 Сообщение отредактировано: 8 августа 2006 14:35
Есть файл с содержанием вида: 2006 06 24 12 15 2006 07 27 12 15 3
соответсвенно поля такие: 1 - год старта. 2 - месяц старта. 3 - число старта. 4 - час старта. 5 - минута старта.
6- год окончания. 7 - месяц окончания. 8 - число окончания. 9 - час окончания. 10 -минута окончания.
11 - колво требуемых обходов процедуры.
тоесть получается вот что: "2006.06.24 12:15" "2006.07.27 12:15" "3"
Как их корректнее всего сравнить и выполнить процедуру только в том случае, если оно входит в рамки указанного времени? Тоесть текущее время входит в заданный интервал в файле?
Просто при помощи IF ов помоему - извращение.... | | | |
4X_Pro
Руководитель Проекта
Настоящий Компьютерщик
 Откуда: Москва Всего сообщений: 3031 Рейтинг пользователя: 75 Дата регистрации на форуме: 29 сен. 2001
|
Профиль | ИгнорироватьNEW! Сообщение отправлено: 8 августа 2006 14:47 Сообщение отредактировано: 8 августа 2006 15:03
Вообще говоря, примерно так:
<FILE>=open("<file.txt"); while (<FILE>) { $fields=split(/ /); $starttime = функция_формирования_времени($fields[0],$fields[1],$fields[2],$fields[3],$fields[4],0); $endtime = функция_формирования_времени($fields[5],$fields[6],$fields[7],$fields[8],$fields[9],0); $count = $fields[10]; // количество обходов теперь в $count if (time()>=$starttime && time()<=$endtime ) { // выполнение необходимых действий } }
Только вот как назвыается процедура формирования времени в Perl, не помню. Но точно знаю, что а) такая процедура есть, б) для ее использования нужно подключить какой-то модуль.
--- Каждый человек всегда может найти, чем он может быть полезен окружающим. Проблема только в одном: слишком многие не хотят это искать.
| | | |
wsx
Участник Проекта
Юниксойд, сетевик
 Откуда: Казань Всего сообщений: 1084 Рейтинг пользователя: 28 Репутация пользователя: 1Дата регистрации на форуме: 14 янв. 2005
|
Профиль | ИгнорироватьNEW! Сообщение отправлено: 8 августа 2006 14:51 Сообщение отредактировано: 8 августа 2006 14:56
use DateTime;
$dt = DateTime->new( year => 1964, month => 10, day => 16, hour => 16, minute => 12, second => 47, nanosecond => 500000000, time_zone => 'Asia/Taipei', );
Или не об этом речь? | | | |
wsx
Участник Проекта
Юниксойд, сетевик
 Откуда: Казань Всего сообщений: 1084 Рейтинг пользователя: 28 Репутация пользователя: 1Дата регистрации на форуме: 14 янв. 2005
|
Профиль | ИгнорироватьNEW! Сообщение отправлено: 8 августа 2006 14:52
Оффтопик: почему смайлики в теге кода работают?Бага? | | | |
4X_Pro
Руководитель Проекта
Настоящий Компьютерщик
 Откуда: Москва Всего сообщений: 3031 Рейтинг пользователя: 75 Дата регистрации на форуме: 29 сен. 2001
|
Профиль | ИгнорироватьNEW! Сообщение отправлено: 8 августа 2006 15:28
Возможно, как раз об этом... А что будет храниться в $dh? Нужно, чтобы это был Unix timestamp, тогда все будет работать нормально.
--- Каждый человек всегда может найти, чем он может быть полезен окружающим. Проблема только в одном: слишком многие не хотят это искать.
| | | |
wsx
Участник Проекта
Юниксойд, сетевик
 Откуда: Казань Всего сообщений: 1084 Рейтинг пользователя: 28 Репутация пользователя: 1Дата регистрации на форуме: 14 янв. 2005
|
Профиль | ИгнорироватьNEW! Сообщение отправлено: 8 августа 2006 15:55
Вобщем я сделал вот так: поспешил конечно, но пофиг. работает и главное 
#!/usr/bin/perl -w
use DateTime;
open(FILE, "<file.txt"); while (<FILE> { ($year,$month,$day, $hour,$minute, $year2, $month2, $day2, $hour2, $minute2 ,$counter)=split(/\s+/); $starttime = DateTime->new(year=>$year,month=>$month,day =>$day,hour=>$hour,minute=>$minute); #print time(); $endtime = DateTime->new(year=>$year2,month=>$month2,day =>$day2,hour=>$hour2,minute=>$minute2); print "$starttime\n"; print "$endtime\n"; # $count = $fields[10]; if (DateTime->now>=$starttime && DateTime->now<=$endtime ) { print "Fuck:$counter\n"; }
}
| | | |
wsx
Участник Проекта
Юниксойд, сетевик
 Откуда: Казань Всего сообщений: 1084 Рейтинг пользователя: 28 Репутация пользователя: 1Дата регистрации на форуме: 14 янв. 2005
|
Профиль | ИгнорироватьNEW! Сообщение отправлено: 8 августа 2006 15:56
Оффтопик: А смайлики уже задрали | | | |
Время выполнения скрипта: 0.2887. Количество выполненных запросов: 18, время выполнения запросов 0.1023
|