DateTime-Event-Cron-Quartz
    
    
  
  
  
view release on metacpan or search on metacpan
lib/DateTime/Event/Cron/Quartz.pm view on Meta::CPAN
sub get_time_after {
    my $this = shift;
    my $after_time = shift->clone;
    # move ahead one second, since we're computing the time *after* the
    # given time
    $after_time->add( seconds => 1 );
    # operable calendar
    my $cl = $after_time->clone;
    my $got_one = 0;
    # loop until we've computed the next time, or we've past the endTime
    ITER: while ( !$got_one ) {
        #if (endTime != null && cl.getTime().after(endTime)) return null;
        if ( ( $cl->year ) > 2999 ) {    # prevent endless loop...
            return undef;
lib/DateTime/Event/Cron/Quartz.pm view on Meta::CPAN
                $min = int( $st->first_item );
            }
            else {
                # next hour
                $min = int( $this->minutes->first_item() );
                $hr++;
            }
            if ( $min != $t ) {
                $cl->set( second => 0, minute => $min );
                $this->set_calendar_hour( $cl, $hr );
                next ITER;
            }
            $cl->set( minute => $min );
        }
        # get hour...................................................
        {
            my $hr = $cl->hour;
            my $day = $cl->day;
lib/DateTime/Event/Cron/Quartz.pm view on Meta::CPAN
            else {
                $hr = int( $this->hours->first_item() );
                $day++;
            }
            if ( $hr != $t ) {
                $cl->add( days => $day - $cl->day );
                $cl->set( second => 0, minute => 0 );
    
                $this->set_calendar_hour( $cl, $hr );
                next ITER;
            }
    
            $cl->set( hour => $hr );
        }
        # get day...................................................
        {
            my $day = $cl->day;
            my $mon = $cl->month;
lib/DateTime/Event/Cron/Quartz.pm view on Meta::CPAN
    
            $cl->set( year => $year );
        }
        $got_one = 1;
    }    # while( !done )
    return $cl;
}
#* Advance the calendar to the particular hour paying particular attention
#* to daylight saving problems.
#*
#* @param cal
#* @param hour
sub set_calendar_hour {
    my $this = shift;
    my ( $cal, $hour ) = @_;
    my $delta = 0;
    if ( $hour == 24 ) {
        $delta = 1;
        $hour--;
    }
( run in 0.384 second using v1.01-cache-2.11-cpan-5dc5da66d9d )