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

Met*_*lis 3 emacs org-mode org-table

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

|  <2015-10-02>--<2015-10-24> |
|  <2015-10-05>--<2015-10-20> |
....
Run Code Online (Sandbox Code Playgroud)

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

如果我尝试类似:#+ TBLFM:$ 2 ='(org-evaluate-time-range $ 1)

第二列填充了

 Time difference inserted
Run Code Online (Sandbox Code Playgroud)

在每一行.

从两个不同的列生成相同的结果也很好,比方说,start date而end date不是在这两个列中创建一列时间范围.

Jua*_*cho 7

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

| <2015-10-05>       | <2015-10-20> |        15 |
| <2013-10-02 08:30> | <2015-10-24> | 751.64583 |
#+TBLFM: $3=$2-$1
Run Code Online (Sandbox Code Playgroud)

使用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)
Run Code Online (Sandbox Code Playgroud)

请注意,唯一org-evaluate-time-range接受的可选参数是一个标志,用于指示在当前缓冲区中插入结果,这是您不想要的.

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