Perl - 检查当前时间是否在晚上9点到早上6点之间

时间:2015-05-11 22:39:07

标签: perl time

我正在寻找确定当前时间是否在晚上9点至早上6点之间的最佳方式,并根据布尔值执行相关操作。

我不能完全确定这样做的最佳方式......我想我可以使用纪元时间(Time :: Local)获得时间,因为它是在上午9点晚上,以及第二天早上6点的时间 - 但这是最​​好的方式吗?还是有更好的方式?

由于

2 个答案:

答案 0 :(得分:2)

这就是必要的

my $hour = (localtime)[2];
if ( $hour >= 21 or $hour < 6 ) { ... }

答案 1 :(得分:0)

如果$ x是开始时间,$ y是结束时间,则可以通过以下方式检查$ z时间:

my $x = 21;
my $y = 6;
my $z = 3;
if ( $y < $x ? ($z < $y or $z >= $x) : ($z >= $x and $z < $y)) {
    #yep
} else { 
    #nope
}

可能已经成熟,可以减少。