aboutsummaryrefslogtreecommitdiff
path: root/srfi
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2019-03-20 21:39:44 +0100
committerHugo Hörnquist <hugo@lysator.liu.se>2019-03-21 01:53:21 +0100
commited287bf2e7c171fc74796af541316342d55a6e3b (patch)
treebebaf0e30dfc135224f24649c62b95d5e3b98591 /srfi
parentFix crash when day has 0 events. (diff)
downloadcalp-ed287bf2e7c171fc74796af541316342d55a6e3b.tar.gz
calp-ed287bf2e7c171fc74796af541316342d55a6e3b.tar.xz
Move time procedures from main to where they belong.
Diffstat (limited to 'srfi')
-rw-r--r--srfi/srfi-19/util.scm25
1 files changed, 25 insertions, 0 deletions
diff --git a/srfi/srfi-19/util.scm b/srfi/srfi-19/util.scm
index 2ec7140d..f1346f78 100644
--- a/srfi/srfi-19/util.scm
+++ b/srfi/srfi-19/util.scm
@@ -56,3 +56,28 @@ attribute set to 0. Can also be seen as \"Start of day\""
(define (remove-day time)
(add-duration time (make-time time-duration 0 (- (* 60 60 24)))))
+
+;; A B C D ¬E
+;; |s1| : |s2| : |s1| : |s2| : |s1|
+;; | | : | | : | ||s2| : |s1|| | : | |
+;; | ||s2| : |s1|| | : | || | : | || | :
+;; | | : | | : | || | : | || | : |s2|
+;; | | : | | : | | : | | : | |
+(define-public (timespan-overlaps? s1-begin s1-end s2-begin s2-end)
+ "Return whetever or not two timespans overlap."
+ (or
+ ;; A
+ (and (time<=? s2-begin s1-end)
+ (time<=? s1-begin s2-end))
+
+ ;; B
+ (and (time<=? s1-begin s2-end)
+ (time<=? s2-begin s1-end))
+
+ ;; C
+ (and (time<=? s1-begin s2-begin)
+ (time<=? s2-end s1-end))
+
+ ;; D
+ (and (time<=? s2-begin s1-begin)
+ (time<=? s1-end s2-end))))