给定一个包含时间范围列的表格,例如:
| <2015-10-02>--<2015-10-24> |
| <2015-10-05>--<2015-10-20> |
....
如何创建显示 org-evaulate-time-range 结果的列?
如果我尝试这样做: #+TBLFM: $2='(org-evaluate-time-range $1)
第二列填充
Time difference inserted
每一行。
最好从两个不同的列(例如,开始日期
和 结束日期
)生成相同的结果,而不是创建一列时间范围那两个。
最佳答案
如果您将日期范围分为两列,则可以进行简单的减法并返回天数:
| <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
接受的唯一可选参数是一个标志,用于指示将结果插入到当前缓冲区中,这是您不希望看到的。
现在,这个函数(不带参数)在评估时如何获得正确的时间范围对我来说完全是个谜;纯粹的魔法(!)
关于emacs - 计算组织模式表中的时间范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33291580/