anchor.diff:  (in-package :ltd)
  -
  +1
   (eval-when (:compile-toplevel :load-toplevel :execute)
     (defconstant +nsecs-per-second+ 1000000000)
     (defconstant +nsecs-per-minute+ (* +nsecs-per-second+ local-time:+seconds-per-minute+))
     (defconstant +nsecs-per-hour+ (* +nsecs-per-second+ local-time:+seconds-per-hour+))
  -  (defconstant +nsecs-per-day+ (* +nsecs-per-second+ local-time:+seconds-per-day+)))
  +  (defconstant +nsecs-per-day+ (* +nsecs-per-second+ local-time:+seconds-per-day+))
  +  (defconstant +nsecs-per-week+ (* +nsecs-per-day+ local-time:+days-per-week+)))
   
   (defclass duration ()
     ((day :accessor day-of :initarg :day :initform 0 :type integer)
  
positive.code:    (nsec :accessor nsec-of :initarg :nsec :initform 0 :type (integer 0 999999999)))
    (:documentation "A duration instance represents a period of time with no additional context (e.g., starting or ending time or location)."))
  
  (defmethod print-object ((object duration) stream)
    (print-unreadable-object (object stream :type 'duration)
      (multiple-value-bind (days remaining)
          (duration-as object :day)
        (multiple-value-bind (hours remaining)
            (duration-as remaining :hour)
          (multiple-value-bind (minutes remaining)
  
negative.code:                     (floor ,dividend ,divisor)
                    (setf ,place remainder)
                    quotient)))
      (let* (remaining-days
             remaining-secs
             remaining-nsecs
             (whole-units
              (ecase unit
                (:week (+ (divide-storing-remainder (day-of duration) local-time:+days-per-week+ remaining-days)
                          (divide-storing-remainder (sec-of duration) local-time:+seconds-per-day+ remaining-secs)
                          (divide-storing-remainder (nsec-of duration) +nsecs-per-day+ remaining-nsecs)))
                (:day (+ (day-of duration)
                         (divide-storing-remainder (sec-of duration) local-time:+seconds-per-day+ remaining-secs)
                         (divide-storing-remainder (nsec-of duration) +nsecs-per-day+ remaining-nsecs)))
  