Commit b532875a authored by Paul Eggert's avatar Paul Eggert

Optional args for holiday-greek-orthodox-easter

* etc/NEWS: Document this.
* lisp/calendar/holidays.el (holiday-greek-orthodox-easter):
Add optional args N and STRING, mimicking the API and code of
‘holiday-easter-etc’.  From suggestion by Foivos S. Zakkak (Bug#21256).
parent 57adf425
......@@ -551,6 +551,9 @@ which means to do nothing special with the mode line in calendars.
The option customizes which day headers receive the
`calendar-weekend-header' face.
---
*** New optional args N and STRING for holiday-greek-orthodox-easter.
---
*** Many items obsolete since at least version 23.1 have been removed.
The majority were function/variable/face aliases, too numerous to list here.
......
......@@ -791,8 +791,16 @@ is non-nil)."
;; Prior call to calendar-julian-from-absolute will autoload cal-julian.
(declare-function calendar-julian-to-absolute "cal-julian" (date))
(defun holiday-greek-orthodox-easter ()
"Date of Easter according to the rule of the Council of Nicaea."
(defun holiday-greek-orthodox-easter (&optional n string)
"Date of Nth day after Easter (named STRING), if visible in calendar window.
It is calculated according to the rule of the Council of Nicaea.
Negative values of N are interpreted as days before Easter.
STRING is used purely for display purposes. The return value has
the form ((MONTH DAY YEAR) STRING), where the date is that of the
Nth day before or after Easter.
For backwards compatibility, if this function is called with no
arguments, it returns the date of Pascha (Greek Orthodox Easter)."
(let* ((m displayed-month)
(y displayed-year)
(julian-year (progn
......@@ -808,11 +816,10 @@ is non-nil)."
(paschal-moon ; day after full moon on or after March 21
(- (calendar-julian-to-absolute (list 4 19 julian-year))
shifted-epact))
(nicaean-easter ; Sunday following the Paschal moon
(calendar-gregorian-from-absolute
(calendar-dayname-on-or-before 0 (+ paschal-moon 7)))))
(if (calendar-date-is-visible-p nicaean-easter)
(list (list nicaean-easter "Pascha (Greek Orthodox Easter)")))))
(abs-easter (calendar-dayname-on-or-before 0 (+ paschal-moon 7)))
(greg (calendar-gregorian-from-absolute (+ abs-easter (or n 0)))))
(if (calendar-date-is-visible-p greg)
(list (list greg (or string "Pascha (Greek Orthodox Easter)"))))))
(provide 'holidays)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment