From 8506e2089497587ec9d5a3502ba0a289f76255a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Fri, 14 Feb 2020 11:02:33 +0100 Subject: Add date-difference. --- module/srfi/srfi-19/alt.scm | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'module') diff --git a/module/srfi/srfi-19/alt.scm b/module/srfi/srfi-19/alt.scm index 08c41204..e1245a82 100644 --- a/module/srfi/srfi-19/alt.scm +++ b/module/srfi/srfi-19/alt.scm @@ -385,6 +385,7 @@ (date-%% change base) ) +;;; Only use this with extreme caution (define-public (date- base . rest) (fold date-% base rest)) @@ -507,6 +508,8 @@ second: ((@ (srfi srfi-19) date-second) o) ))) +;;; the *-difference procedures takes two actual datetimes. +;;; date- instead takes a date and a delta (but NOT an actual date). (define-public (datetime-difference end start) (let ((t @@ -516,6 +519,10 @@ ((@ (srfi srfi-19) set-time-type!) t (@ (srfi srfi-19) time-utc)) (srfi-19-date->datetime ((@ (srfi srfi-19) time-utc->date) t 0)))) ; TODO tz offset +(define-public (date-difference end start) + (get-date (datetime-difference (datetime date: end) + (datetime date: start)))) + ;;; Parsers for vcomponent usage -- cgit v1.2.3