aboutsummaryrefslogtreecommitdiff
path: root/module/vcomponent/datetime.scm
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@hornquist.se>2020-01-24 20:21:41 +0100
committerHugo Hörnquist <hugo@hornquist.se>2020-01-24 20:23:04 +0100
commite822f7b81245c919eda8bd8ad4b482df075e0508 (patch)
tree3024a9a1a80e5c9ffd6d187a028c783dc4b7abbd /module/vcomponent/datetime.scm
parentExtend define-many to allow a custom define procedure. (diff)
downloadcalp-e822f7b81245c919eda8bd8ad4b482df075e0508.tar.gz
calp-e822f7b81245c919eda8bd8ad4b482df075e0508.tar.xz
Start of new date structures.
Diffstat (limited to 'module/vcomponent/datetime.scm')
-rw-r--r--module/vcomponent/datetime.scm25
1 files changed, 11 insertions, 14 deletions
diff --git a/module/vcomponent/datetime.scm b/module/vcomponent/datetime.scm
index 5bf829a9..c01de7e7 100644
--- a/module/vcomponent/datetime.scm
+++ b/module/vcomponent/datetime.scm
@@ -1,10 +1,10 @@
(define-module (vcomponent datetime)
#:use-module (vcomponent base)
- #:use-module (srfi srfi-19)
- #:use-module (srfi srfi-19 util)
+ #:use-module (srfi srfi-19 alt)
+ #:use-module (srfi srfi-19 alt util)
#:use-module (util)
- #:export (parse-datetime
+ #:export (#;parse-datetime
event-overlaps?
overlapping?
event-contains?
@@ -12,6 +12,7 @@
)
;;; date time pointer
+#;
(define (parse-datetime dtime)
"Parse the given date[time] string into a date object."
(string->date
@@ -33,30 +34,26 @@ Event must have the DTSTART and DTEND attribute set."
(attr event-b 'DTSTART)
(attr event-b 'DTEND)))
-(define (event-contains? ev time)
+(define (event-contains? ev datetime)
"Does event overlap the date that contains time."
- (let* ((date (time-utc->date time))
- (start (date->time-utc (drop-time date)))
+ (let* ((start (get-date datetime))
(end (add-day start)))
(event-overlaps? ev start end)))
-(define (ev-time<? a b)
- (time<? (attr a 'DTSTART)
- (attr b 'DTSTART)))
+(define-public (ev-time<? a b)
+ (date/-time<? (attr a 'DTSTART)
+ (attr b 'DTSTART)))
;; Returns length of the event @var{e}, as a time-duration object.
(define-public (event-length e)
- (time-difference
+ (time-
(attr e 'DTEND)
(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}.
(define-public (event-length/day e start-of-day)
- (time-difference
+ (time-
(time-min (add-day start-of-day) (attr e 'DTEND))
(time-max start-of-day (attr e 'DTSTART))))
-(define-public (ev-time<? a b)
- (time<? (attr a 'DTSTART)
- (attr b 'DTSTART)))