Function: nndiary-compute-reminders
nndiary-compute-reminders is a byte-compiled function defined in
nndiary.el.gz.
Signature
(nndiary-compute-reminders DATE)
Source Code
;; Defined in /usr/src/emacs/lisp/gnus/nndiary.el.gz
(defun nndiary-compute-reminders (date)
;; Returns a list of times corresponding to the reminders of date DATE.
;; See the comment in `nndiary-reminders' about rounding.
(let* ((reminders nndiary-reminders)
(date-elts (decode-time date))
;; ### NOTE: out-of-range values are accepted by encode-time. This
;; makes our life easier.
(monday (- (decoded-time-day date-elts)
(if nndiary-week-starts-on-monday
(if (zerop (decoded-time-weekday date-elts))
6
(- (decoded-time-weekday date-elts) 1))
(decoded-time-weekday date-elts))))
reminder res)
;; remove the DOW and DST entries
(setcdr (nthcdr 5 date-elts) (nthcdr 8 date-elts))
(while (setq reminder (pop reminders))
(push
(cond ((eq (cdr reminder) 'minute)
(time-subtract
(apply #'encode-time 0 (nthcdr 1 date-elts))
(* (car reminder) 60)))
((eq (cdr reminder) 'hour)
(time-subtract
(apply #'encode-time 0 0 (nthcdr 2 date-elts))
(* (car reminder) 3600)))
((eq (cdr reminder) 'day)
(time-subtract
(apply #'encode-time 0 0 0 (nthcdr 3 date-elts))
(* (car reminder) 86400)))
((eq (cdr reminder) 'week)
(time-subtract
(apply #'encode-time 0 0 0 monday (nthcdr 4 date-elts))
(* (car reminder) 604800)))
((eq (cdr reminder) 'month)
(time-subtract
(apply #'encode-time 0 0 0 1 (nthcdr 4 date-elts))
(* (car reminder) 18748800)))
((eq (cdr reminder) 'year)
(time-subtract
(apply #'encode-time 0 0 0 1 1 (nthcdr 5 date-elts))
(* (car reminder) 400861056))))
res))
(sort res #'time-less-p)))