Skip to content

Commit 1cca4f2

Browse files
committed
Implement scheduling task on last weekday of month
1 parent 43f7e04 commit 1cca4f2

2 files changed

Lines changed: 17 additions & 0 deletions

File tree

src/commands/schedule_tasks.janet

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
(string "every year on " (remove-year formatted-date)) true
3131
(string "on " formatted-date) true
3232
"every last day" (date/last-day-of-month? date)
33+
"every last weekday" (date/last-weekday-of-month? date)
3334
"every last Friday" (date/last-friday-of-month? date)))
3435

3536
(defn- missed-on-day [plan task date]

test/commands/schedule_tasks_test.janet

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,22 @@
8383
(test (scheduled-for? task (d/date 2023 1 31)) true)
8484
(test (not (scheduled-for? task (d/date 2022 1 30))) true))
8585

86+
(deftest "every last weekday"
87+
(def task (task/build-scheduled-task 42 "Review logs" "every last weekday"))
88+
(test (scheduled-for? task (d/date 2022 1 31)) true)
89+
(test (scheduled-for? task (d/date 2022 2 28)) true)
90+
(test (scheduled-for? task (d/date 2022 3 31)) true)
91+
(test (scheduled-for? task (d/date 2022 4 29)) true)
92+
(test (scheduled-for? task (d/date 2022 5 31)) true)
93+
(test (scheduled-for? task (d/date 2022 6 30)) true)
94+
(test (scheduled-for? task (d/date 2022 7 29)) true)
95+
(test (scheduled-for? task (d/date 2022 8 31)) true)
96+
(test (scheduled-for? task (d/date 2022 9 29)) true)
97+
(test (scheduled-for? task (d/date 2022 10 31)) true)
98+
(test (scheduled-for? task (d/date 2022 11 30)) true)
99+
(test (scheduled-for? task (d/date 2022 12 30)) true)
100+
(test (not (scheduled-for? task (d/date 2022 1 30))) true))
101+
86102
(deftest "every last Friday"
87103
(def task (task/build-scheduled-task 42 "Review logs" "every last Friday"))
88104
(test (scheduled-for? task (d/date 2022 1 28)) true)

0 commit comments

Comments
 (0)