From ad6a6bc6027f36f505a227bc73a0c3b720f47c87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Fri, 20 Mar 2020 01:26:08 +0100 Subject: Start work on better wide html renderer. --- module/vcomponent/datetime.scm | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'module/vcomponent/datetime.scm') diff --git a/module/vcomponent/datetime.scm b/module/vcomponent/datetime.scm index 27153cea..ffde1e6e 100644 --- a/module/vcomponent/datetime.scm +++ b/module/vcomponent/datetime.scm @@ -46,9 +46,19 @@ Event must have the DTSTART and DTEND attribute set." ;; Returns length of the event @var{e}, as a time-duration object. (define-public (event-length e) - (time- - (attr e 'DTEND) - (attr e 'DTSTART))) + (if (not (attr e 'DTEND)) + (datetime date: + (if (date? (attr e 'DTSTART)) + #24:00:00 + #01:00:00)) + (let ((ret (datetime-difference (as-datetime (attr e 'DTEND)) + (as-datetime (attr e 'DTSTART))))) + (format (current-error-port) "ret = ~a~%" ret) + ret))) + +(define-public (event-length/clamped start-date end-date e) + (datetime-difference (datetime-min (datetime date: end-date) (as-datetime (attr e 'DTEND))) + (datetime-max (datetime date: start-date) (as-datetime (attr e 'DTSTART))))) ;; Returns the length of the part of @var{e} which is within the day ;; starting at the time @var{start-of-day}. -- cgit v1.2.3