4

给定一个包含时间范围列的表,例如:

|  <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不是从这两个列中创建一列时间范围。

4

1 回答 1

10

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

| <2015-10-05>       | <2015-10-20> |        15 |
| <2013-10-02 08:30> | <2015-10-24> | 751.64583 |
#+TBLFM: $3=$2-$1

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接受的可选参数是一个标志,用于指示将结果插入当前缓冲区,这是您不想要的。

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

于 2015-10-23T00:13:44.123 回答