aboutsummaryrefslogtreecommitdiff
path: root/module/datetime/timespec.scm
diff options
context:
space:
mode:
Diffstat (limited to 'module/datetime/timespec.scm')
-rw-r--r--module/datetime/timespec.scm13
1 files changed, 9 insertions, 4 deletions
diff --git a/module/datetime/timespec.scm b/module/datetime/timespec.scm
index 099634b6..9bfcc402 100644
--- a/module/datetime/timespec.scm
+++ b/module/datetime/timespec.scm
@@ -6,10 +6,11 @@
(define-module (datetime timespec)
:export (make-timespec
timespec? timespec-time timespec-sign timespec-type)
- :use-module ((hnh util) :select (set define*-public unless let*))
+ :use-module ((hnh util) :select (set define*-public unless))
:use-module ((hnh util exceptions) :select (warning))
:use-module (datetime)
:use-module (srfi srfi-1)
+ :use-module (srfi srfi-71)
:use-module (srfi srfi-9 gnu)
:use-module (calp translation)
)
@@ -50,8 +51,10 @@
(time-b (timespec-time spec)))
(if (time< time-a time-b)
(make-timespec (time- time-b time-a)
+ '- (timespec-type done))
+ (make-timespec (time- time-a time-b)
'+ (timespec-type done))
- (set (timespec-time done) (time- time-b))))]
+ ))]
;; + -
[(and (eq? '+ (timespec-sign done))
(eq? '- (timespec-sign spec)))
@@ -60,14 +63,16 @@
(if (time< time-a time-b)
(make-timespec (time- time-b time-a)
'- (timespec-type done))
- (set (timespec-time done) (time+ time-b))))]))
+ (make-timespec (time- time-a time-b)
+ '+ (timespec-type done))
+ ))]))
(timespec-zero)
specs))
(define*-public (parse-time-spec
string optional: (suffixes '(#\s #\w #\u #\g #\z)))
- (let* ((type string
+ (let ((type string
(cond [(string-rindex string (list->char-set suffixes))
=> (lambda (idx)
(values (string-ref string idx)