anchor.diff:  (defun modified-julian-date (local-time)
     (- (day-of local-time) +modified-julian-date-offset+))
   
  +(defmacro with-decoded-local-time ((&key nsec sec minute hour day month year day-of-week daylight-p timezone)
  +                                   local-time &body forms)
  +  (let ((ignores)
  +        (variables))
  +    (macrolet ((initialize (&rest vars)
  +                 `(progn
  +                    ,@(loop for var :in vars
  +                            collect `(progn
  +                                       (unless ,var
  +                                         (setf ,var (gensym))
  +                                         (push ,var ignores))
  +                                       (push ,var variables)))
  +                    (setf ignores (nreverse ignores))
  +                    (setf variables (nreverse variables)))))
  +      (initialize nsec sec minute hour day month year day-of-week daylight-p timezone))
  +    `(multiple-value-bind (,@variables) (decode-local-time ,local-time)
  +       (declare (ignore ,@ignores))
  +       ,@forms)))
  +
   (defun encode-duration (&key (nsec 0) (usec 0) (msec 0) (sec 0) (minute 0) (hour 0) (day 0) (week 0))
     (+ (* +seconds-per-minute+
           (+ (* +minutes-per-hour+
  
positive.code:     (if (> day max-day)
          max-day
          day)))
  
  (defun expand-adjust-local-time-changes (local-time changes visitor)
    (dolist (change changes)
  
negative.code:                 `((,new (clone-local-time ,old)))))
         ,@forms
         ,old)))
  ) ; eval-when
  
  (defmacro adjust-local-time (local-time &body changes)
    (expand-adjust-local-time local-time changes :functional t))
  