From 7c183a5814058e8c20a14308eca9620988cb9ae5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Sun, 22 Mar 2020 20:14:47 +0100 Subject: Add previous-week-start procedure. --- module/datetime/util.scm | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'module') 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 -- cgit v1.2.3