Antworten:
Das Originalposter möchte möglicherweise einen Blick auf die calendar-count-days-region
im Handbuch beschriebene integrierte Funktion werfen : https://www.gnu.org/software/emacs/manual/html_node/emacs/Counting-Days.html
Das Folgende ist eine benutzerdefinierte Funktion, die die Bibliotheken org-mode
und verwendet calendar-mode
. Bei meiner Prüfung von calendar-count-days-region
sah ich, dass der Autor (in die Zählung) den Tag am Ende der Region einbezog (dh durch programmgesteuertes Hinzufügen eines Tages). In meiner Arbeit, den letzten Tages als Teil der Gesamtzählung ist nicht erlaubt - so dass ich so etwas wie das folgende Beispiel verwenden würde statt (das ist nicht einen zusätzlichen Tag auf die Gesamtzahl hinzufügen).
(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)))