组织模式:如何安排每月第一个星期六的重复任务?

时间:2012-11-25 20:52:17

标签: org-mode

我正在使用org-mode来安排任务。

是否有一种直接的方式来安排在每个月的第一个星期六发生的任务?

3 个答案:

答案 0 :(得分:12)

org-float现已过时(请参阅this commit)。从现在开始,您必须使用diary-float代替org-float

(对不起噪音:这不值得一个完整的答案,但是现在我没有足够的“声誉”来评论。)

答案 1 :(得分:7)

组织模式有很好的文档,使用它。 (info "(org) Deadlines and scheduling")

  

您可以在计划和截止日期中使用带有转发器的时间戳   条目。组织模式将根据此发布早期和晚期警告   假设时间戳表示最近的实例   中继器。然而,使用日记性别条目,如`< %%(diary-float t   42)>”在安排和截止日期时间戳是有限的。组织模式   不太了解每个sexp函数的内部问题   早期和晚期警告。但是,它会在每天显示该项目   sexp条目匹配的位置。

* My Task
  <%%(diary-float t 6 1)>

答案 2 :(得分:5)

在日程安排和截止日期时间戳中使用sexp是有限的,如信息所述

  

Org模式对每个sexp函数的内部问题都知之甚少   早期和晚期警告。

我编写了一个elisp代码来自动更改时间戳,使用它,您需要做的就是设置属性。

elisp代码为here

  1. (load "/path/to/next-spec-day")添加到您的dot emacs文件中。

  2. 设置TODO任务的NEXT-SPEC-DEADLINE和/或NEXT-SPEC-SCHEDULED属性,如下所示:

    * test
      :PROPERTIES:
      :NEXT-SPEC-SCHEDULED: (org-float t 6 1)
      :END:
    

    NEXT-SPEC-SCHEDULED的值是如果non-nil是该月的第一个星期六,则性别将返回date

  3. 然后,当您更改该任务的TODO状态时,时间戳将自动更改(包括警告设置的提前期)。它变为:

    * TODO test
      SCHEDULED: <2013-01-05 Sat>
      :PROPERTIES:
      :NEXT-SPEC-SCHEDULED: (org-float t 6 1)
      :END: