]> git.eshelyaron.com Git - emacs.git/commitdiff
Edward M. Reingold <reingold@emr.cs.iit.edu>
authorGlenn Morris <rgm@gnu.org>
Sun, 17 Aug 2003 22:49:46 +0000 (22:49 +0000)
committerGlenn Morris <rgm@gnu.org>
Sun, 17 Aug 2003 22:49:46 +0000 (22:49 +0000)
(calendar-goto-day-of-year): New function.

lisp/calendar/cal-move.el

index b711e226a0efdf90c2306c2440738a8d35b56ac9..fed55d9e9471715b51959c0f5ee0e0eee6a9c662 100644 (file)
@@ -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