diff --git a/crontab.go b/crontab.go index 3111c3b..4c1e6f2 100644 --- a/crontab.go +++ b/crontab.go @@ -91,6 +91,19 @@ func (cron *Crontab) TimeUp() bool { return cron.linuxTimeUp() } +// NextTime 返回下次任务的时间 +func (cron *Crontab) NextTime() *time.Time { + if cron.interval != nil { + return &cron.nextTime + } + + if len(cron.WillPlans) > 0 { + return &cron.WillPlans[0] + } + + return nil +} + func (cron *Crontab) String() string { return fmt.Sprintf("min:%s\nhour:%s\nday:%s\nmonth:%s\nweek:%s\n", spew.Sdump(cron.min), spew.Sdump(cron.hour), spew.Sdump(cron.day), spew.Sdump(cron.month), spew.Sdump(cron.week)) } @@ -173,7 +186,8 @@ func (cron *Crontab) linuxTimeUp() bool { return istimeup } } - cron.SkipPlans = cron.WillPlans + + cron.SkipPlans = append(cron.SkipPlans, cron.WillPlans...) cron.WillPlans = nil return istimeup }