在org-mode表中计算时间范围

时间:2015-10-22 22:06:48

标签: emacs org-mode org-table

给定一个具有一列时间范围的表,例如:

|  <2015-10-02>--<2015-10-24> |
|  <2015-10-05>--<2015-10-20> |
....

如何创建显示org-evalute-time-range结果的列?

如果我尝试这样的事情:     #+ TBLFM:$ 2 ='(org-evaluate-time-range $ 1)

第二列填充

 Time difference inserted

在每一行。

从两个不同的列生成相同的结果也很不错,例如start dateend date,而不是在这两个列中创建一列时间范围。

1 个答案:

答案 0 :(得分:6)

如果您将日期范围拆分为2列,则会进行简单的减法并返回天数:

org-evaluate-time-range

也可以使用| <2015-10-02>--<2015-10-24> | 22 days | | <2015-10-05>--<2015-10-20> | 15 days | | <2015-10-22 Thu 21:08>--<2015-08-01> | 82 days 21 hours 8 minutes | #+TBLFM: $2='(org-evaluate-time-range) ,并获得一个很好的格式化输出:

org-evaluate-time-range

请注意,setInterval接受的唯一可选参数是一个标志,表示将结果插入当前缓冲区,这是您不想要的。

现在,这个函数(没有参数)如何获得正确的时间范围,对我来说,评估是一个完全的谜;纯粹的魔法(!)