组织模式:如何计算动态期限

时间:2015-09-09 12:48:07

标签: emacs org-mode

我有一个任务的预定开始日期以及以天数完成任务的努力,

例如,在N = 5以下的情况下,开始日期是< 2016-01-27 Wed>

如何根据scheduled_date + 5days自动计算截止日期?

这样我最终得到以下内容:

DEADLINE: <2016-02-03 Wed> SCHEDULED: <2016-01-27 Wed>

1 个答案:

答案 0 :(得分:3)

以下示例调用org-schedule;用户输入所需的日期/时间;然后将5天的时间转换添加到最后插入的时间戳中,该值由org-deadline以编程方式使用。如果用户希望在截止日期的时间戳中显示小时/分钟,请将with-hm设置为t

[如果用户希望截止日期与预定日期完全相同,则需要进行一些额外的工作。目前,默认是截止日期的午夜。]

  
(defun schedule-me ()
(interactive)
  (org-schedule nil)
  (let* (
      (timeshift 5)
      (time
        (org-time-from-absolute
          (+
            timeshift
            (org-time-string-to-absolute org-last-inserted-timestamp))))
      (with-hm nil)
      (fmt (funcall (if with-hm 'cdr 'car) org-time-stamp-formats)) )
    (org-deadline nil (format-time-string fmt time))))