From f5461a9f98e514cbf1226b28f642bcb2438e6b0f Mon Sep 17 00:00:00 2001 From: Dave <54906029+davemilller@users.noreply.github.com> Date: Thu, 7 Dec 2023 15:45:11 -0700 Subject: [PATCH] month first weekday bug (#628) --- scheduler.go | 2 +- scheduler_test.go | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/scheduler.go b/scheduler.go index f51e0bd..e681fbe 100644 --- a/scheduler.go +++ b/scheduler.go @@ -828,7 +828,7 @@ func (s *Scheduler) MonthFirstWeekday(weekday time.Weekday) *Scheduler { return s.Cron(fmt.Sprintf("0 0 %d %d %d", day, month, weekday)) } - return s.Cron(fmt.Sprintf("0 0 %d %d %d", day, month+1, weekday)) + return s.Cron(fmt.Sprintf("0 0 %d %d %d", day, (month+1)%12, weekday)) } // LimitRunsTo limits the number of executions of this job to n. diff --git a/scheduler_test.go b/scheduler_test.go index 9edfbd8..14485a5 100644 --- a/scheduler_test.go +++ b/scheduler_test.go @@ -2263,6 +2263,11 @@ func TestScheduler_EveryMonthFirstWeekday(t *testing.T) { expected: time.Date(2022, time.March, 7, 0, 0, 0, 0, time.UTC), weekday: time.Monday, }, + { + current: time.Date(2022, time.December, 7, 0, 0, 0, 0, time.UTC), + expected: time.Date(2023, time.January, 2, 0, 0, 0, 0, time.UTC), + weekday: time.Monday, + }, } for _, tc := range testCases {