Respuestas:
Escribo "<2016-06-15 Wed> - <2016-07-18 Mon>" ... y luego (con POINT en algún lugar sobre las fechas) presiono Cc Cy (org-Evaluation-Time-Range) C- ucy escribirá el rango de tiempo después de las fechas como, <2016-06-15 Wed> - <2016-07-18 Mon> 33d
El póster original puede desear echar un vistazo a la función incorporada llamada calendar-count-days-region
descrita en el manual: https://www.gnu.org/software/emacs/manual/html_node/emacs/Counting-Days.html
La siguiente es una función personalizada que utiliza las bibliotecas org-mode
y calendar-mode
. Al examinar calendar-count-days-region
, vi que el autor incluía (en el recuento) el día al final de la región (es decir, mediante la adición programática de un día). En mi línea de trabajo, no se permite contar el último día como parte del total, por lo que usaría algo como el siguiente ejemplo (que no agrega un día adicional al recuento total).
(require 'calendar)
(require 'org)
(defun count-calendar-days ()
"Count the number of calendar days -- includes holidays, weekends, etc."
(interactive)
(let* (
(d1 (org-read-date nil nil nil "Insert First Date: "))
(d1-parsed (org-parse-time-string d1))
(d1-day (nth 3 d1-parsed))
(d1-month (nth 4 d1-parsed))
(d1-year (nth 5 d1-parsed))
(d1-list (list d1-month d1-day d1-year))
(d2 (org-read-date nil nil nil "Insert Second Date: "))
(d2-parsed (org-parse-time-string d2))
(d2-day (nth 3 d2-parsed))
(d2-month (nth 4 d2-parsed))
(d2-year (nth 5 d2-parsed))
(d2-list (list d2-month d2-day d2-year))
(date1 (calendar-absolute-from-gregorian d1-list))
(date2 (calendar-absolute-from-gregorian d2-list))
(total-days
(let* ((days (- (calendar-absolute-from-gregorian d1-list)
(calendar-absolute-from-gregorian d2-list)))
(days (if (> days 0) days (- days))))
days)) )
(message "%s (+/-) %s = %s" d1 d2 total-days)))