【问题标题】:Calculate time range in org-mode table计算组织模式表中的时间范围
【发布时间】:2015-10-22 22:06:47
【问题描述】:

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

|  <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 从两个不同的列生成相同的结果,而不是从这两个列中创建一列时间范围,这也很好。

【问题讨论】:

    标签: emacs org-mode org-table


    【解决方案1】:

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

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

    【讨论】:

    • 这太神奇了。谢谢!我不知道为什么我不尝试只是减法。很高兴知道这也有效。很好的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多