0

現在の時刻が小さいか、20:00 に等しいか大きいかを確認したい (たとえば)。どうすればPerlでそれを行うことができますか?

ありがとう。

4

4 に答える 4

3

機能をチェックしてくださいlocaltime

use warnings;
use strict;

my $after_time = "13:32";

my @time = localtime(time);    

if ($after_time =~ /(\d+):(\d+)/ and
    $time[2] >= $1 and
    $time[1] >= $2
)
{
    print "It is after $after_time";    
}

更新:への 2 回の呼び出しが原因で元のコードに欠陥があったことを指摘してくれた Dave Cross に感謝しlocaltime()ます。

于 2013-02-07T13:26:42.803 に答える
2

あなたが何を求めているのかは正確にはわかりませんが、おそらくこのようなものです。

use Time::Piece;

my $hour = localtime->hour;

if ($hour < 20) {
  say "It's before 20:00";
} elsif {$hour > 20) {
  say "It's after 20:00";
} else {
  say "It's 20:00";
}
于 2013-02-07T13:59:00.667 に答える
0

実際には、正しい「if」条件は多少異なります。時間が分よりも大きい場合、分が大きいかどうかを確認する必要はありません(記号の方向も修正しました:)

use warnings;
use strict;

my $after_time = "13:32";

my @time = localtime(time);    

if ( $after_time =~ /(\d+):(\d+)/
    and (( $time[2] > $1 ) || ( $time[2] == $1 and $time[1] >= $2 ))
) {
    print "It is after $after_time";    
}
于 2013-12-05T13:35:12.633 に答える