diff options
author | Hugo Hörnquist <hugo@lysator.liu.se> | 2020-04-27 23:02:34 +0200 |
---|---|---|
committer | Hugo Hörnquist <hugo@lysator.liu.se> | 2020-04-27 23:02:34 +0200 |
commit | ab2f5ae1f63ff9b880b64d6be16cf7332a0563e7 (patch) | |
tree | 8ccc945c33162394194b0df63caf9be470f3a07b /module/vcomponent | |
parent | Eventlist now only scrolls vertically. (diff) | |
download | calp-ab2f5ae1f63ff9b880b64d6be16cf7332a0563e7.tar.gz calp-ab2f5ae1f63ff9b880b64d6be16cf7332a0563e7.tar.xz |
Move events-between to datetime/vcomponent.
Diffstat (limited to '')
-rw-r--r-- | module/vcomponent/datetime.scm | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/module/vcomponent/datetime.scm b/module/vcomponent/datetime.scm index 745bf551..44776516 100644 --- a/module/vcomponent/datetime.scm +++ b/module/vcomponent/datetime.scm @@ -124,6 +124,19 @@ Event must have the DTSTART and DTEND attribute set." (as-datetime final)) #f)))) +;; date, date, [sorted-stream events] → [list events] +(define-public (events-between start-date end-date events) + (define (overlaps e) + (timespan-overlaps? start-date (date+ end-date (date day: 1)) + (attr e 'DTSTART) (attr e 'DTEND))) + + ((@ (srfi srfi-41) stream-filter) + overlaps + ((@ (srfi srfi-41 util) get-stream-interval) + overlaps + (lambda (e) (not (date< end-date (as-date (attr e 'DTSTART))))) + events))) + |