Function: diary-chinese-anniversary
diary-chinese-anniversary is an autoloaded and byte-compiled function
defined in cal-china.el.gz.
Signature
(diary-chinese-anniversary MONTH DAY &optional YEAR MARK)
Documentation
Like diary-anniversary (which see) but accepts Chinese date.
Source Code
;; Defined in /usr/src/emacs/lisp/calendar/cal-china.el.gz
;;;###cal-autoload
(defun diary-chinese-anniversary (month day &optional year mark)
"Like `diary-anniversary' (which see) but accepts Chinese date."
(pcase-let* ((ddate (diary-make-date month day year))
(`(,dc ,dy ,dm ,dd) ;diary chinese date
(if year
(calendar-chinese-from-absolute
(calendar-chinese-to-absolute-for-diary ddate))
(list nil nil (calendar-extract-month ddate)
(calendar-extract-day ddate))))
(`(,cc ,cy ,cm ,cd) ;current chinese date
(calendar-chinese-from-absolute
(calendar-absolute-from-gregorian date)))
(diff (if (and dc dy)
(+ (* 60 (- cc dc)) (- cy dy))
100)))
(and (> diff 0)
;; The Chinese month can differ by 0.5 in a leap month.
(or (= dm cm) (= (+ 0.5 dm) cm))
(= dd cd)
(cons mark (format entry diff (diary-ordinal-suffix diff))))))