一千萬個為什麽

搜索

組織模式時間戳中繼器間隔操作

What are (if any) the lisp functions to read and write the repeater interval part of the org-mode timestamps? (The ones at the end of the timestamp string, which are optional, e.g. +1w or +6d in <2016-03-03 Thu .+6d -3d> or [2016-01-27 Wed ++1w -2d])

如果沒有這樣的功能,那麽如何創建它們呢?

有什麽方法可以將它們轉換為秒以用於算術運算?

最佳答案

請參閱 org-element-timestamp-parser (解析點的時間戳,包括轉發器部分)和 org-element-timestamp-interpreter (將時間戳對象轉換回Org)句法)。

For example, calling (org-element-timestamp-parser) with the point at the "<" of "<2016-01-25 Mon 14:51 +1w>" produces

(timestamp (:type active
            :raw-value "<2016-01-25 Mon 14:51 +1w>"
            :year-start 2016
            :month-start 1
            :day-start 25
            :hour-start 14
            :minute-start 51
            :year-end 2016
            :month-end 1
            :day-end 25
            :hour-end 14
            :minute-end 51
            :begin 1
            :end 27
            :post-blank 0
            :repeater-type cumulate
            :repeater-value 1
            :repeater-unit week))

此列表的第二個元素是 property列表可以使用 plist-getplist-put 輕松訪問和更改。

PS:我通過在Org源目錄中運行 zrgrep 找到了這些,搜索“repeater”。

PPS:我使用的是Org-mode 8.2.10版。

轉載註明原文: 組織模式時間戳中繼器間隔操作