--- a.el 2018-07-09 11:50:31.882699070 -0400 +++ b.el 2018-07-09 11:51:07.636744090 -0400 @@ -2243,18 +2243,19 @@ If optional NODAY is t, does not ask for day, but just returns \(month 1 year); if NODAY is any other non-nil value the value returned is \(month year)" - (let* ((year (calendar-read + (let* ((today (calendar-current-date)) + (year (calendar-read "Year (>0): " (lambda (x) (> x 0)) - (number-to-string (calendar-extract-year - (calendar-current-date))))) + (number-to-string (calendar-extract-year today)))) (month-array calendar-month-name-array) (completion-ignore-case t) (month (cdr (assoc-string (completing-read "Month name: " (mapcar 'list (append month-array nil)) - nil t) + nil t nil nil + (aref month-array (1- (calendar-extract-month today)))) (calendar-make-alist month-array 1) t))) (last (calendar-last-day-of-month month year))) (if noday @@ -2263,7 +2264,8 @@ (list month year)) (list month (calendar-read (format "Day (1-%d): " last) - (lambda (x) (and (< 0 x) (<= x last)))) + (lambda (x) (and (< 0 x) (<= x last))) + (number-to-string (calendar-extract-day today))) year)))) (defun calendar-interval (mon1 yr1 mon2 yr2)