aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2020-06-13 00:55:15 +0200
committerHugo Hörnquist <hugo@lysator.liu.se>2020-06-13 01:06:04 +0200
commit52378d6fbc0387c8315fed0d702b0919e63a8279 (patch)
tree0798055bca743582a0ac3ade526bb376bafa80cb
parentMove recurrence output test to tests/. (diff)
downloadcalp-52378d6fbc0387c8315fed0d702b0919e63a8279.tar.gz
calp-52378d6fbc0387c8315fed0d702b0919e63a8279.tar.xz
Date, time & datetime now display themself in read-able forms.
-rw-r--r--module/datetime.scm13
-rw-r--r--tests/datetime.scm2
2 files changed, 12 insertions, 3 deletions
diff --git a/module/datetime.scm b/module/datetime.scm
index 957303b7..8591f6f9 100644
--- a/module/datetime.scm
+++ b/module/datetime.scm
@@ -45,7 +45,7 @@
(not (integer? (month r)))
(not (integer? (day r))))
(format p "BAD~s-~s-~s" (year r) (month r) (day r))
- (format p "~4'0d-~2'0d-~2'0d"
+ (format p "#~4'0d-~2'0d-~2'0d"
(year r) (month r) (day r)))))
(define*-public (date key: (year 0) (month 0) (day 0))
@@ -66,7 +66,7 @@
(not (integer? (second r))))
(format p "BAD~s:~s:~s"
(hour r) (minute r) (second r))
- (format p "~2'0d:~2'0d:~2'0d"
+ (format p "#~2'0d:~2'0d:~2'0d"
(hour r) (minute r) (second r)))))
(define*-public (time key: (hour 0) (minute 0) (second 0))
@@ -82,6 +82,15 @@
(tz tz) ; #f, "UTC", "Europe/Stockholm", ...
)
+(set-record-type-printer!
+ <datetime>
+ (lambda (r p)
+ (write `(datetime date: ,(get-date r)
+ time: ,(get-time% r)
+ ,@(awhen (tz r)
+ `(tz: ,it)))
+ p)))
+
(export get-date)
(define-public (get-timezone datetime)
(tz datetime))
diff --git a/tests/datetime.scm b/tests/datetime.scm
index c4a725e8..ee25ca9d 100644
--- a/tests/datetime.scm
+++ b/tests/datetime.scm
@@ -40,7 +40,7 @@
(year d) (month d) (day d))))
(test-equal "Date print"
- "2020-01-01"
+ "#2020-01-01"
(format #f "~a" (date year: 2020 month: 1 day: 1)))
(test-equal "Syntax date="