From: Glenn Morris Date: Sun, 17 Aug 2003 22:49:46 +0000 (+0000) Subject: Edward M. Reingold X-Git-Tag: ttn-vms-21-2-B4~9073 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=163fd24dfd910260ae15255c4eaada4ea4aabc23;p=emacs.git Edward M. Reingold (calendar-goto-day-of-year): New function. --- diff --git a/lisp/calendar/cal-move.el b/lisp/calendar/cal-move.el index b711e226a0e..fed55d9e947 100644 --- a/lisp/calendar/cal-move.el +++ b/lisp/calendar/cal-move.el @@ -327,6 +327,27 @@ Moves forward if ARG is negative." (calendar-cursor-to-visible-date date) (run-hooks 'calendar-move-hook)) +(defun calendar-goto-day-of-year (year day &optional noecho) + "Move cursor to YEAR, DAY number; echo DAY/YEAR unless NOECHO is t. +Negative DAY counts backward from end of year." + (interactive + (let* ((year (calendar-read + "Year (>0): " + (lambda (x) (> x 0)) + (int-to-string (extract-calendar-year + (calendar-current-date))))) + (last (if (calendar-leap-year-p year) 366 365)) + (day (calendar-read + (format "Day number (+/- 1-%d): " last) + '(lambda (x) (and (<= 1 (abs x)) (<= (abs x) last)))))) + (list year day))) + (calendar-goto-date + (calendar-gregorian-from-absolute + (if (< 0 day) + (+ -1 day (calendar-absolute-from-gregorian (list 1 1 year))) + (+ 1 day (calendar-absolute-from-gregorian (list 12 31 year)))))) + (or noecho (calendar-print-day-of-year))) + (provide 'cal-move) ;;; cal-move.el ends here