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.476 second using v1.01-cache-2.11-cpan-5dc5da66d9d )