2014-06-30 111 views
3

如果当前日期在两个其他日期之间,我将如何查找。Perl:检查当前日期是否在两个给定日期之间

这下面的代码工作,如果其他两个日子像周二到周四

但是,如果我想,让我的用户给出了一系列像周五至周一的东西。

my $timestamp = time; 
    my $dow  = (localtime($timestamp))[6]; 

    my $range = '5-1'; # 5 being friday and 1 being monday 
    $range =~ m/(\d+)-(\d+)/; 
    my ($start, $end) = ($1, $2); 

    if ($start >= 0 && $end <= 6 && $dow >= $start && $dow <= $end) { 
     print "$dow falls between your range"; 
     } 

回答

4
my $in = ($start <= $end 
    ? $start <= $dow && $dow <= $end 
    : !($end < $dow && $dow < $start) 
); 

my $in = ($start <= $end 
    ? $start <= $dow && $dow <= $end 
    : $dow <= $end || $start <= $dow 
); 
+0

哇方式不太复杂的话,我试图做到这一点。谢谢! – hypnotoad

相关问题