[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Orgmode] Re: question and use example
From: |
Benjamin Andresen |
Subject: |
[Orgmode] Re: question and use example |
Date: |
Wed, 26 Aug 2009 22:18:49 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.1.50 (gnu/linux) |
Hey Paul,
Paul Menair <address@hidden> writes:
> My problem is this. I populate the fifth field with c-- c-u c-y. I
> would be nice if it happened automatically, but that's no big deal.
> However, I've been going through and manually entering the sixth
> field, and that does end up being a hassle.
I whipped something up that should work for you.
You need to evaluate the code below and then the below table will work
for you.
(defun ba/org-timerange (s &optional in-min)
(let* ((re "^\\(.*?\\)--\\(.*?\\)$")
(start (replace-regexp-in-string re "\\1" s))
(end (replace-regexp-in-string re "\\2" s))
(start-in-min (org-hh:mm-string-to-minutes start))
(end-in-min (org-hh:mm-string-to-minutes end))
(diff-in-min (- end-in-min start-in-min)))
(if in-min
diff-in-min
(format "%.2f" (/ diff-in-min (float 60))))))
| date | client | desc | timerange
| H:M | in dec |
|------------------+--------+-------+------------------------------------------------+------+--------|
| <2009-08-26 Wed> | benny | foo'd | <2009-08-26 Wed 21:55>--<2009-08-26 Wed
21:58> | 0:03 | 0.05 |
#+TBLFM: $5='(org-minutes-to-hh:mm-string (ba/org-timerange $4
t))::$6='(ba/org-timerange $4)
If you're on the table and you press C-u C-c C-c and it should put the
correct info at the respective places.
Now what I recommend is using autocalc instead so you don't have to
worry about doing this. This would require you to change your table to
the following format:
| | date | client | desc | timerange
| H:M | in dec |
|---+------------------+--------+--------+------------------------------------------------+------+--------|
| # | <2009-08-25 Tue> | benny | foo'd | <2009-08-25 Tue 20:55>--<2009-08-25
Tue 23:58> | 3:03 | 3.05 |
| # | <2009-08-26 Wed> | bar | quux'd | <2009-08-26 Wed 22:10>--<2009-08-26
Wed 22:14> | 0:04 | 0.07 |
#+TBLFM: $6='(org-minutes-to-hh:mm-string (ba/org-timerange $5
t))::$7='(ba/org-timerange $5)
The "#" in the first column achieves this. See (info "(org)Advanced features")
for more information.
> Paul
HTH,
benny