Contando o número de dias que se passaram desde uma determinada data

8

Eu tenho um documento no modo organizacional no qual desejo acompanhar o número de dias que se passaram desde uma determinada data. Existe uma função integrada para isso ou serei forçado a escrever uma função elisp personalizada para fazer isso?

davorb
fonte

Respostas:

7

Escrevo "<15/06/2016 quarta-feira> - <18/07/2016)> ... e então (com POINT em algum lugar durante as datas) pressiono Cc Cy (org-avalie-time-range) C- ucy escreverá o intervalo de tempo após as datas como, <15/06/2016 quarta-feira> - <18-07-2016 seg> 33d

vcmsxs
fonte
Era exatamente isso que eu estava procurando. Obrigado! :-)
davorb 23/06
5

O pôster original pode dar uma olhada na função calendar-count-days-regioninterna chamada descrita no manual: https://www.gnu.org/software/emacs/manual/html_node/emacs/Counting-Days.html

A seguir, é uma função personalizada que usa as bibliotecas org-modee calendar-mode. Ao examinar calendar-count-days-region, vi que o autor incluiu (na contagem) o dia no final da região (ou seja, adicionando programaticamente um dia). Na minha linha de trabalho, a contagem do último dia como parte do total não é permitida - portanto, usaria algo como o exemplo a seguir (que não adiciona um dia adicional à contagem 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)))
lista de leis
fonte