Вычислить временной диапазон в таблице режима организации

Дана таблица со столбцом временных диапазонов, например:

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

Как я могу создать столбец с результатами org-evalute-time-range?

Если я попытаюсь что-то вроде: #+TBLFM: $2='(org-valu-time-range $1)

2-й столбец заполнен

 Time difference inserted

в каждом ряду.

Также было бы неплохо получить один и тот же результат из двух разных столбцов, скажем, start date а также end date вместо того, чтобы создавать один столбец времени, из этих двух.

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 accept принимает флаг, указывающий на вставку результата в текущий буфер, который вам не нужен.

Теперь, как эта функция (без аргументов) получает правильный диапазон времени при оценке, является для меня полной загадкой; чистая магия (!)

Другие вопросы по тегам