|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Leonid Subbotin 2:5007/16.1 28 Apr 2000 11:45:41 To : All Subject : вот -------------------------------------------------------------------------------- упростить это дело можно ? есть ли тут логические ошибки ? пока воял запутался :( $level=1; $usertime=3600; $worktime="21:00-15:00"; # check work time $worktime=~/^(\d+):(\d+)-(\d+):(\d+)$/; $start=($1*60+$2)*60; $end=($3*60+$4)*60; @tmp=(localtime())[0..2]; $now=($tmp[2]*60+$tmp[1])*60+$tmp[0]; if($start < $end){ goto authtimeok if $now > $start and $now < $end;} else{ goto authtimeok if ($now > $start and $now < 86400) or $now < $end;} print "Work time: $worktime. Please call only this time!"; goto authfailed; authtimeok: # check for locked if(!$level){ print "Account is locked."; goto authfailed; } # check for time if($usertime < 1){ print "Time limit."; goto authfailed; } # check end work day $ended=$end-$now; if($usertime > $ended and $ended > -1){ $usertime=$ended;} else{ $ended+=86400; if($usertime > $ended){ $usertime=$ended;} } print "All done."; # uses $usertime... exit 0; authfailed: # .... exit 0; Всегда с вами Sln ! --- GoldED+/W32 1.1.4 * Origin: Sln Station (2:5007/16.1) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/20685390925ed.html, оценка из 5, голосов 10
|