summaryrefslogtreecommitdiff
path: root/lisp/calendar/cal-julian.el
diff options
context:
space:
mode:
authorGlenn Morris <rgm@gnu.org>2008-04-01 02:54:50 +0000
committerGlenn Morris <rgm@gnu.org>2008-04-01 02:54:50 +0000
commit589117b4df8fd6f6bf81fd840bab0a3374437fb0 (patch)
tree5f57efe58b51291f8dcebdabd63542936e90f749 /lisp/calendar/cal-julian.el
parent2f264ff695541003296f9a0f6fe94f72228a58f2 (diff)
downloademacs-589117b4df8fd6f6bf81fd840bab0a3374437fb0.tar.gz
(holiday-julian): Use calendar-nongregorian-visible-p.
Diffstat (limited to 'lisp/calendar/cal-julian.el')
-rw-r--r--lisp/calendar/cal-julian.el47
1 files changed, 9 insertions, 38 deletions
diff --git a/lisp/calendar/cal-julian.el b/lisp/calendar/cal-julian.el
index 791e78e4811..94b7d698e70 100644
--- a/lisp/calendar/cal-julian.el
+++ b/lisp/calendar/cal-julian.el
@@ -128,50 +128,21 @@ Driven by the variable `calendar-date-display-form'."
(calendar-absolute-from-julian date)))
(or noecho (calendar-print-julian-date)))
-(defvar displayed-month)
-(defvar displayed-year)
-
;;;###holiday-autoload
(defun holiday-julian (month day string)
"Holiday on MONTH, DAY (Julian) called STRING.
If MONTH, DAY (Julian) is visible, the value returned is corresponding
Gregorian date in the form of the list (((month day year) STRING)). Returns
nil if it is not visible in the current calendar window."
- ;; We need to choose the Julian year associated with month and day
- ;; that might make them visible.
- ;; This is the same as holiday-hebrew, except that the test for
- ;; which year to use is different.
- (let* ((m1 displayed-month)
- (y1 displayed-year)
- (m2 displayed-month)
- (y2 displayed-year)
- ;; Absolute date of first/last dates in calendar window.
- (start-date (progn
- (increment-calendar-month m1 y1 -1)
- (calendar-absolute-from-gregorian (list m1 1 y1))))
- (end-date (progn
- (increment-calendar-month m2 y2 1)
- (calendar-absolute-from-gregorian
- (list m2 (calendar-last-day-of-month m2 y2) y2))))
- ;; Julian date of first/last date in calendar window.
- (julian-start (calendar-julian-from-absolute start-date))
- (julian-end (calendar-julian-from-absolute end-date))
- ;; Julian year of first/last dates.
- ;; Can only differ if displayed-month = 12, 1, 2.
- (julian-y1 (extract-calendar-year julian-start))
- (julian-y2 (extract-calendar-year julian-end))
- ;; Choose which year might be visible in the window.
- ;; Obviously it only matters when y1 and y2 differ, ie
- ;; when the _Julian_ new year is visible.
- ;; In the Gregorian case, we'd use y1 (the lower year)
- ;; when month >= 11. In the Julian case, there is an offset
- ;; of two weeks (ie 1 Nov Greg = 19 Oct Julian). So we use
- ;; month >= 10, since it can't cause any problems.
- (year (if (> month 9) julian-y1 julian-y2))
- (date (calendar-gregorian-from-absolute
- (calendar-absolute-from-julian (list month day year)))))
- (if (calendar-date-is-visible-p date)
- (list (list date string)))))
+ (let ((gdate (calendar-nongregorian-visible-p
+ month day 'calendar-absolute-from-julian
+ 'calendar-julian-from-absolute
+ ;; In the Gregorian case, we'd use the lower year when
+ ;; month >= 11. In the Julian case, there is an offset
+ ;; of two weeks (ie 1 Nov Greg = 19 Oct Julian). So we
+ ;; use month >= 10, since it can't cause any problems.
+ (lambda (m) (< m 10)))))
+ (if gdate (list (list gdate string)))))
;;;###cal-autoload
(defun calendar-absolute-from-astro (d)