LINUX.ORG.RU

perldoc -f localtime

anonymous
()


($second, $minute, $hour, $day, $month, $year) = (localtime)[0..5];
Но при этом не забыть $year+=1900;

braindef
()

print scalar localtime;

anonymous
()

Работа со временем
Скорость работы программы можно определить, используя команду time:

bash-2.05$ time ./time.pl

real    0m0.613s
user    0m0.487s
sys     0m0.074s
bash-2.05$

Ниже приведено несколько примеров программ, выводящих текущее время.

&time($time);
print "$time\n";

sub time{
  $time = sprintf("%02d/%02d/%02d b %02d:%02d:%02d", $tm->hour,$tm->min, $tm->sec, $tm->mday, $tm->mon+1, $tm->year+1900);
  return $time;
}

Еще один способ:

#!/usr/bin/perl

my ($wday,$mday,$mon,$year,$time) =
 (split(" ",gmtime(time+10800)))[0,2,1,4,3];

print "$wday, $mday $mon $year $time GMT\n";

print (split("\s",gmtime(time+10800)))->[0,2,1,4,3];
print "\n";

Тест для Григорианского календаря на високосность:

year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)

Время можно вывести и вот так:

@d=split(/[ ]+/, scalar localtime);

печатает:

$d[0]=='Wed'
$d[1]=='Jun'
$d[2]=='5'
$d[3]=='14:59:35'
$d[4]=='2002'

Еще и так:

&Date($time);
print "$time\n";
sub Date {
        ($Second, $Minute, $Hour, $DayOfMonth, $Month, $Year, $Weekday,
        $DayOfYear, $IsDST) = localtime(time);
        $RealYear = $Year + 1900;
        $Month++;
        if($Month < 10) {$Month = "0" . $Month}
        if($DayOfMonth < 10) {$DayOfMonth = "0" . $DayOfMonth}
        if($Hour < 10) {$Hour = "0" . $Hour}
        if($Minute < 10) {$Minute = "0" . $Minute}
        if($Second < 10) {$Second = "0" . $Second}
        $date = "$DayOfMonth-$Month-$RealYear";
        $approval_date = "$RealYear|$Month|$DayOfMonth";
        $time = "$Hour:$Minute:$Second";
}

И так:

#!/usr/bin/perl
use POSIX qw();
my $time = POSIX::strftime "%H:%M:%S", localtime time;
print "$time\n";

Если возникла необходимость локализовать время в соответствии с часовым поясом, то

#!/usr/bin/perl
use POSIX qw();
my $time = POSIX::strftime "%H:%M:%S", localtime(time+3*3600);
print "$time\n";

Спасибо: S.Nitsulenko, Vladimir Podgorny, Artem Chuprina, Dmitry Koteroff (from fido7.ru.perl) 

vilfred ☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.