diff options
Diffstat (limited to 'module/datetime')
-rw-r--r-- | module/datetime/util.scm | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/module/datetime/util.scm b/module/datetime/util.scm index 50c7c725..ff75e86d 100644 --- a/module/datetime/util.scm +++ b/module/datetime/util.scm @@ -70,6 +70,17 @@ (zeller J (1- K) (+ m 12) (day date)) (zeller J K (month date) (day date))))) +;; Given a date, returns the earliest start of week going backwards from that date. +;; sön 22 mar 2020 20:09:57 CET +;; @example +;; (previous-week-start #2020-03-22 mon) +;; => 2020-03-16 +(define-public (previous-week-start date* week-start) + ((@ (srfi srfi-41 util) stream-find) + (lambda (d) (= week-start (week-day d))) + ((@ (srfi srfi-41) stream-iterate) (cut date- <> (date day: 1)) + date*))) + (define-many define-public (sun) 0 (mon) 1 |