;;; cal-hebrew.el --- calendar functions for the Hebrew calendar
-;; Copyright (C) 1995, 1997, 2001-2011 Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1997, 2001-2012 Free Software Foundation, Inc.
;; Author: Nachum Dershowitz <nachum@cs.uiuc.edu>
;; Edward M. Reingold <reingold@cs.uiuc.edu>
(interactive
(let* ((death-date
(if (equal (current-buffer) (get-buffer calendar-buffer))
- (calendar-cursor-to-date)
+ (calendar-cursor-to-date t)
(let* ((today (calendar-current-date))
(year (calendar-read
"Year of death (>0): "
(message "Computing Yahrzeits...")
(let* ((h-date (calendar-hebrew-from-absolute
(calendar-absolute-from-gregorian death-date)))
- (h-month (calendar-extract-month h-date))
- (h-day (calendar-extract-day h-date))
(h-year (calendar-extract-year h-date))
(i (1- start-year)))
(calendar-in-read-only-buffer calendar-hebrew-yahrzeit-buffer
(declare-function diary-ordinal-suffix "diary-lib" (n))
;;;###diary-autoload
-(defun diary-hebrew-yahrzeit (death-month death-day death-year &optional mark)
+(defun diary-hebrew-yahrzeit (death-month death-day death-year
+ &optional mark after-sunset)
"Yahrzeit diary entry--entry applies if date is Yahrzeit or the day before.
Parameters are DEATH-MONTH, DEATH-DAY, DEATH-YEAR; the diary
entry is assumed to be the name of the person. Although the date
of death is specified by the civil calendar, the proper Hebrew
calendar Yahrzeit is determined.
+If the death occurred after local sunset on the given civil date,
+the following civil date corresponds to the Hebrew date of
+death--set the optional parameter AFTER-SUNSET non-nil in this case.
+
The order of the input parameters changes according to `calendar-date-style'
\(e.g. to DEATH-DAY, DEATH-MONTH, DEATH-YEAR in the European style).
An optional parameter MARK specifies a face or single-character string to
use when highlighting the day in the calendar."
(let* ((h-date (calendar-hebrew-from-absolute
- (calendar-absolute-from-gregorian
- (diary-make-date death-month death-day death-year))))
- (h-month (calendar-extract-month h-date))
- (h-day (calendar-extract-day h-date))
+ (+ (calendar-absolute-from-gregorian
+ (diary-make-date death-month death-day death-year))
+ (if after-sunset 1 0))))
(h-year (calendar-extract-year h-date))
(d (calendar-absolute-from-gregorian date))
(yr (calendar-extract-year (calendar-hebrew-from-absolute d)))
(format "%s (second day)" this-month)
this-month))))
(if (= (% d 7) 6) ; Saturday--check for Shabbat Mevarchim
- (cons mark
- (cond ((and (> h-day 22) (/= h-month 6) (= 29 last-day))
+ (cond ((and (> h-day 22) (/= h-month 6) (= 29 last-day))
+ (cons mark
(format "Mevarchim Rosh Hodesh %s (%s)"
(aref h-month-names
(if (= h-month
(calendar-hebrew-last-month-of-year
h-year))
0 h-month))
- (aref calendar-day-name-array (- 29 h-day))))
- ((and (< h-day 30) (> h-day 22) (= 30 last-day))
+ (aref calendar-day-name-array (- 29 h-day)))))
+ ((and (< h-day 30) (> h-day 22) (= 30 last-day))
+ (cons mark
(format "Mevarchim Rosh Hodesh %s (%s-%s)"
(aref h-month-names h-month)
(if (= h-day 29)