http://www.perlmonks.org?node_id=782793


in reply to Re: Check if Date interval contains Hour X
in thread Check if Date interval contains Hour X

Another (maybe simpler) way of truncating:

sub hour_in_range { my ($dt_s, $dt_e, @hours) = @_; for my $hour (@hours) { my $dt = $dt_s->clone() ->truncate( to => 'day' ) ->add( hours => $hour ); $dt->add( days => 1 ) if $dt < $dt_s; return 1 if $dt <= $dt_e; } return 0; }

Replies are listed 'Best First'.
Re^3: Check if Date interval contains Hour X
by ikegami (Patriarch) on Jul 23, 2009 at 21:50 UTC
    That introduced a bug. hour_in_range no longer performs as documented. Test case:
    2010-10-10 01:59:59|2010-10-10 01:59:59|blablalblabla

      I see. In order to check only the hour (skipping minutes and seconds), $dt_s must be truncated to the hour.