anchor.diff:    (nth-value 1 (iso-8601-week-and-year time)))
   
   (defun iso-8601-year-of-century (time)
  -  (rem (iso-8601-year time) 100))
  +  (rem (the year (iso-8601-year time)) 100))
   
   (defun iso-8601-week-and-year (time)
  -  (multiple-value-bind (y1 m1 d1)
  -      (date-calc:add-delta-days (year time) 1 4
  -                                (- (date-calc:cl-day-of-week (year time) 1 4)))
  -    (values
  -     (1+ (floor
  -          (date-calc:delta-days y1 m1 d1
  -                                (year time) (month time) (day-of-month time))
  -          7))
  -     y1)))
  +  (let ((year (timestamp-year time))
  +        (month (timestamp-month time))
  +        (day (timestamp-day time)))
  +    (declare (year year) (month month) (day day))
  +    (multiple-value-bind (y1 m1 d1)
  +        (date-calc:add-delta-days year 1 4
  +                                  (- (the weekday (date-calc:cl-day-of-week year 1 4))))
  +      (values
  +       (1+ (floor
  +            (date-calc:delta-days y1 m1 d1 year month day)
  +            7))
  +       y1))))
   
   (defun time-zone-offset (time)
     ;; CL gives time zones the opposite sign as ISO.
  
positive.code:               (abs hours) (abs minutes)))))
  
  (defun time-zone-name (time &optional nato)
    (if (and nato (eql *default-timezone* +utc-zone+))
        "Z"
        (nth-value 10 (decode-timestamp time))))
  
negative.code:     "October" "November" "December"))
  
  (defun month-name (time)
    (svref *months* (1- (the month (timestamp-month time)))))
  
  (defparameter *short-months*
    (map 'vector (lambda (month) (subseq (the string month) 0 3)) *months*))
  
  (defun short-month-name (time)
    (svref *short-months* (1- (the month (timestamp-month time)))))
  
  (defparameter *weekdays*
    #("Sunday" "Monday" "Tuesday" "Wednesday" "Thursday" "Friday" "Saturday"))
  