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 )