diff --git a/README.md b/README.md index db7e9ac..2461466 100644 --- a/README.md +++ b/README.md @@ -88,13 +88,13 @@ to create a `CronExpression` object once and keep a copy of it for reuse: nextTime := cronexpr.NextTime(time.Now()) ... -Use `cronexpression.NoMatch()` to find out whether a valid time was returned. For example, +Use `nextTime.IsZero()` to find out whether a valid time was returned. For example, - cronexpression.NoMatch(cronexpression.NextTime("* * * * * 1980", time.Now())) + cronexpression.NextTime("* * * * * 1980", time.Now()).IsZero() will return `true`, whereas - cronexpression.NoMatch(cronexpression.NextTime("* * * * * 2050", time.Now())) + cronexpression.NextTime("* * * * * 2050", time.Now()).IsZero() will return `false` (as of 2013-08-29...) @@ -143,9 +143,3 @@ Given a time stamp `fromTime`, return the closest following time stamp which mat Given a time stamp `fromTime`, return a slice of `n` closest following time stamps which match the cron expression `cronexpr`. The time stamps in the returned slice are in chronological ascending order. The `time.Location` of the returned time stamps is the same as `fromTime`. -#### func NoMatch - - func NoMatch(t time.Time) bool - -Returns `true` if time stamp `t` is not a valid time stamp from `CronExpression` point of view. An invalid time stamp is returned by this library whenever no matching time stamp is found given a specific cron expression. - diff --git a/cronexpression.go b/cronexpression.go index 2c47424..3433bdb 100644 --- a/cronexpression.go +++ b/cronexpression.go @@ -45,10 +45,6 @@ type CronExpression struct { /******************************************************************************/ -var noMatchTime = time.Date(2100, 7, 1, 0, 0, 0, 0, time.UTC) - -/******************************************************************************/ - // NewCronExpression() returns a new CronExpression pointer. It expects // a well-formed cron expression. If a malformed cron expression is // supplied, the result is undefined. @@ -127,7 +123,7 @@ func NextTimeN(cronLine string, fromTime time.Time, n int) []time.Time { // time stamp is the same as `fromTime`. func (cronexpr *CronExpression) NextTime(fromTime time.Time) time.Time { // Special case - if NoMatch(fromTime) { + if fromTime.IsZero() { return fromTime } @@ -145,7 +141,7 @@ func (cronexpr *CronExpression) NextTime(fromTime time.Time) time.Time { v := fromTime.Year() i := sort.SearchInts(cronexpr.yearList, v) if i == len(cronexpr.yearList) { - return noMatchTime + return time.Time{} } if v != cronexpr.yearList[i] { return cronexpr.nextYear(fromTime) @@ -218,7 +214,7 @@ func (cronexpr *CronExpression) NextTimeN(fromTime time.Time, n int) []time.Time nextTimes := make([]time.Time, 0) fromTime = cronexpr.NextTime(fromTime) for { - if NoMatch(fromTime) { + if fromTime.IsZero() { break } nextTimes = append(nextTimes, fromTime) @@ -233,23 +229,12 @@ func (cronexpr *CronExpression) NextTimeN(fromTime time.Time, n int) []time.Time /******************************************************************************/ -// Returns `true` if time stamp `t` is not a valid time stamp from -// `CronExpression` point of view. An invalid time stamp is returned by this -// library whenever no matching time stamp is found given a specific cron -// expression. -func NoMatch(t time.Time) bool { - // https://en.wikipedia.org/wiki/Cron#CRON_expression: 1970–2099 - return t.Year() >= 2100 -} - -/******************************************************************************/ - func (cronexpr *CronExpression) nextYear(t time.Time) time.Time { // Find index at which item in list is greater or equal to // candidate year i := sort.SearchInts(cronexpr.yearList, t.Year()+1) if i == len(cronexpr.yearList) { - return noMatchTime + return time.Time{} } // Year changed, need to recalculate actual days of month cronexpr.actualDaysOfMonthList = cronexpr.calculateActualDaysOfMonth(cronexpr.yearList[i], cronexpr.monthList[0])