Function: holiday-chinese-new-year
holiday-chinese-new-year is a byte-compiled function defined in
cal-china.el.gz.
Signature
(holiday-chinese-new-year)
Documentation
Date of Chinese New Year, if visible in calendar.
Returns (((MONTH DAY YEAR) TEXT)), where the date is Gregorian.
Source Code
;; Defined in /usr/src/emacs/lisp/calendar/cal-china.el.gz
;;;###holiday-autoload
(defun holiday-chinese-new-year ()
"Date of Chinese New Year, if visible in calendar.
Returns (((MONTH DAY YEAR) TEXT)), where the date is Gregorian."
(let ((m displayed-month)
(y displayed-year)
chinese-new-year)
;; In the Gregorian calendar, CNY falls between Jan 21 and Feb 20.
;; Jan is visible if displayed-month = 12, 1, 2; Feb if d-m = 1, 2, 3.
;; If we shift the calendar forward one month, we can do a
;; one-sided test, namely: d-m <= 4 means CNY might be visible.
(calendar-increment-month m y 1) ; shift forward a month
(and (< m 5)
(calendar-date-is-visible-p
(setq chinese-new-year
(calendar-gregorian-from-absolute
(cadr (assoc 1 (calendar-chinese-year y))))))
(list
(list chinese-new-year
(format "Chinese New Year (%s)"
(calendar-chinese-sexagesimal-name (+ y 57))))))))