From 52378d6fbc0387c8315fed0d702b0919e63a8279 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Sat, 13 Jun 2020 00:55:15 +0200 Subject: Date, time & datetime now display themself in read-able forms. --- module/datetime.scm | 13 +++++++++++-- tests/datetime.scm | 2 +- 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! + + (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=" -- cgit v1.2.3