|
|
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
|