From ed287bf2e7c171fc74796af541316342d55a6e3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Wed, 20 Mar 2019 21:39:44 +0100 Subject: Move time procedures from main to where they belong. --- vcalendar/datetime.scm | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) (limited to 'vcalendar/datetime.scm') diff --git a/vcalendar/datetime.scm b/vcalendar/datetime.scm index 9f47f5c3..360b8348 100644 --- a/vcalendar/datetime.scm +++ b/vcalendar/datetime.scm @@ -1,14 +1,16 @@ (define-module (vcalendar datetime) + #:use-module (vcalendar) #:use-module (srfi srfi-19) #:use-module (srfi srfi-19 util) - #:export (parse-datetime) + #:export (parse-datetime + event-overlaps? + event-in?) ) (define (parse-datetime dtime) "Parse the given date[time] string into a date object." ;; localize-date - (date->time-utc (string->date dtime @@ -16,3 +18,17 @@ ((8) "~Y~m~d") ((15) "~Y~m~dT~H~M~S") ((16) "~Y~m~dT~H~M~S~z"))))) + +(define (event-overlaps? event begin end) + "Returns if the event overlaps the timespan. +Event must have the DTSTART and DTEND attribute set." + (timespan-overlaps? (attr event 'DTSTART) + (attr event 'DTEND) + begin end)) + +(define (event-in? ev time) + "Does event overlap the date that contains time." + (let* ((date (time-utc->date time)) + (start (date->time-utc (drop-time date))) + (end (add-duration start (make-duration (* 60 60 24))))) + (event-overlaps? ev start end))) -- cgit v1.2.3