From 44c986d13c6987f65527f73eb7158a3adde4ceb0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Thu, 19 Mar 2020 00:14:56 +0100 Subject: Move date util procedures to module, document. --- module/datetime/util.scm | 47 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 46 insertions(+), 1 deletion(-) (limited to 'module/datetime') diff --git a/module/datetime/util.scm b/module/datetime/util.scm index 697b1806..54331250 100644 --- a/module/datetime/util.scm +++ b/module/datetime/util.scm @@ -1,6 +1,6 @@ (define-module (datetime util) :use-module (datetime) - :use-module ((srfi srfi-1) :select (fold)) + :use-module (srfi srfi-1) :use-module (srfi srfi-26) :use-module (srfi srfi-41) :use-module (util) @@ -33,6 +33,11 @@ (define-public (time-max a b) (if (time (24 25 26 27 28 29) +;; => (1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31) +;; => (1 2 3 4 5) +(define-public (month-days date week-start) + (let* ((month (month date)) + (month-len (days-in-month date)) + (prev-month-len (days-in-month (month- date))) + (month-start (modulo (- (week-day date) week-start) 7))) + (values + (iota month-start (1+ (- prev-month-len month-start))) + (iota month-len 1) + (iota (modulo (- (* 7 5) month-len month-start) 7) 1)))) + -- cgit v1.2.3