anchor.diff:    (multiple-value-bind (minutes seconds) (floor seconds 60)
       (multiple-value-bind (hours minutes) (floor minutes 60)
         (multiple-value-bind (days hours) (floor hours 24)
  -	(multiple-value-bind (weeks days) (floor days 7)
  -	  (multiple-value-bind (years weeks) (floor weeks 52)
  -	    (multiple-value-bind (centuries years) (floor years 100)
  -	      (format nil "~[~:;~:*~d centur~:@p ~]~[~:;~:*~d year~:p ~]~[~:;~:*~d week~:p ~]~[~:;~:*~d day~:p ~]~[~:;~:*~d hour~:p ~]~[~:;~:*~d minute~:p ~]~[~:;~:*~d second~:p ~]"
  -		      centuries years weeks days hours minutes seconds))))))))
  +        (multiple-value-bind (weeks days) (floor days 7)
  +          (multiple-value-bind (years weeks) (floor weeks 52)
  +            (multiple-value-bind (centuries years) (floor years 100)
  +              (format nil "~[~:;~:*~d centur~:@p ~]~[~:;~:*~d year~:p ~]~[~:;~:*~d week~:p ~]~[~:;~:*~d day~:p ~]~[~:;~:*~d hour~:p ~]~[~:;~:*~d minute~:p ~]~[~:;~:*~d second~:p ~]"
  +                      centuries years weeks days hours minutes seconds))))))))
   
   (defun parse-date-string (string)
  -  (apply #'date/time->utc 
  -	 (loop for start = 0 then (1+ dash)
  -	    for dash = (position #\- string :start start)
  -	    collect (parse-integer (subseq string start dash))
  -	    while dash)))
  +  (apply #'date/time->utc
  +         (loop for start = 0 then (1+ dash)
  +            for dash = (position #\- string :start start)
  +            collect (parse-integer (subseq string start dash))
  +            while dash)))
   
   (defun weekday-p (time)
     (with-time (day) time (< day 5)))
  
positive.code:     (:awst 8 "Australian Western Standard Time")
      (:cxt 7 "Christmas Island Time"))))
  
  (defparameter *long-month-names* 
    #("January"
      "February"
      "March"
  
negative.code: produce an unambiguous date/time string.)"
    (multiple-value-bind (second minute hour day month year day-of-week daylight-savings-p zone)
        (etypecase time-zone
          (number  (decode-universal-time time-value (- time-zone)))
          (keyword (decode-universal-time time-value (lisp-time-zone time-zone)))
          (null    (decode-universal-time time-value)))
      (declare (ignore day-of-week))
      (when daylight-savings-p (decf zone))
      (setf zone (- zone))
      (with-output-to-string (s)
        (unless omit-date
          (format s "~4,'0d-~2,'0d-~2,'0d"  year month day))
        (unless (or omit-date omit-time)
          (write-char #\T s))
        (unless omit-time
          (format s "~2,'0d:~2,'0d:~2,'0d" hour minute second)
          (unless omit-time-zone
            (if (zerop zone)
                (princ #\Z s)
                (multiple-value-bind (h m) (truncate (* 60 zone) 60)
                  (format s  "~2,'0@d:~2,'0d" h (abs m)))))))))
  
  (defpackage :iso (:use) (:export :|8601|))
  
  (defun iso:8601 (out arg colon-p at-sign-p &rest params)
    (write-string (format-iso-8601-time
                   arg
                   :time-zone (first params)
                   :omit-time (and at-sign-p (not colon-p))
  