Hi Zefram, Zefram writes: > The SRFI-19 library gets TAI<->UTC conversions badly wrong in the years > 1961 to 1971 (inclusive). Indeed. > This has to be examined somewhat indirectly, because SRFI-19 doesn't offer > any way to display a TAI time in its conventional form as a date-like > structure, nor to input a TAI time from such a structure. FWIW, here are two procedures I hacked up to support TAI dates: --8<---------------cut here---------------start------------->8--- (define (time-tai->date-tai t . tz-offset) (apply time-tai->date (time-utc->time-tai! (make-time time-utc (time-nanosecond t) (time-second t))) tz-offset)) (define (date-tai->time-tai d) (let ((t (time-tai->time-utc (date->time-tai d)))) (set-time-type! t time-tai) t)) --8<---------------cut here---------------end--------------->8--- > SRFI-19's date structure, as implemented, is always interpreted > according to UTC. Indeed, I discovered this as well, and found it surprising. The text of SRFI-19 fails to mention it, but the reference implementation makes it quite clear. > First I'll consider an ordinary day in 1967: > > scheme@(guile-user)> (use-modules (srfi srfi-19)) > scheme@(guile-user)> (time-difference > ... (time-utc->time-tai (date->time-utc (make-date 0 0 0 0 15 3 1967 0))) > ... (time-utc->time-tai (date->time-utc (make-date 0 0 0 0 14 3 1967 0)))) > $1 = #