emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* Recording Time - org-clock-sum
@ 2014-11-05 17:00 Fredrik Unger
  2014-11-06  9:14 ` Sebastien Vauban
  2014-11-17 18:31 ` Fredrik Unger
  0 siblings, 2 replies; 5+ messages in thread
From: Fredrik Unger @ 2014-11-05 17:00 UTC (permalink / raw)
  To: Emacs-orgmode

Hi,

I have been using Emacs Orgmode for 3-4 years recording time.
It started out with Sacha Chua:s article "Clocking Time with Emacs Org" 
[1] where the org-dblock-write:rangereport did what I needed.

As time went by I have made some adaptations to it and simplified it
but kept the core idea [2].
One addition is: that it is not based no increments of 24*60*60 but 1 
day, which removed problems by Daylight savings time (in October).
Maybe more type safe functions exists like in Perl, [3] but I did not 
find in org-mode. With my change I rely on that emacs date calculations
are in the same shape as [3]. It worked for this case and I stopped at that.

I am not a full out user of Orgmode and I do not keep project files.
I use one simple file per month to record my work, and it has been a 
good choice for me. Maybe someday I can switch to some other structure 
but as the CLOCK lines takes some space, I'd rather "forget" CLOCK 
history on a monthly basis. Projects do not last more than 2-3 month 
anyway and the catch-all internal project that is "never ending" would 
become too crowded with CLOCK lines.
It is also easier to spot clocking mistakes if the file is limited to a 
month.

Projects can not be summarized across month, but for my reporting needs
that is not needed.

The data is clocked as follows [4] per month. More project,
items and clocked times are in a normal org file, but this
simplified case should do.

I want to expand the report to show start/end time + breaks.

Eg from :
Time report November 2014
<2014-11-05 Wed> -- 8:00 (8.00)

to :
Time report November 2014
<2014-11-05 Wed> -- 8:00 (8.00)  s 07:00 e 16:00 b 11:00-12:00,

Format is not set, but I need these time for my reporting.
In the normal case it is start-end and lunch.

I have tried to work with org-clock-sum to get the data from the CLOCK 
entries. My elisp is rusty, and I missed that the regexp was */level 
dependent. I managed to get a list of dates but just from the CLOCK 
under the Item.
(((2014-11-05 12:00) (2014-11-05 14:00))
  ((2014-11-05 14:00) (2014-11-05 16:00)))

There were some strange duplicates as well so I guess I just did things 
wrong.

To get the wanted result I would need a regexp that scans all CLOCK:
and reports the two timestamps and generate a list of
((time1 time2) (time2 time3) (time4 time5) (time5 time6)) filtered
on the call with tstart tend like org-clock-sum.
For me the actual heading is not needed.

With this list I can then flaten it, and if needed sort it :
(time1 time2 time2 time3 time4 time5 time5 time6)
If I then remove duplicates all together I will get :
(time1 time3 time4 time6)
where min is start and max is end, and pairs in between are breaks.

s time1 e time6 b time3-time4,

I did not manage to create this list of all CLOCK values filtered on 
tstart/tend (which in my case would be one day at the time just like
I call org-clock-sum for the total sum).

I would be grateful for advice or pointers to a better way to find
all CLOCK values. Feel free to publish [2] on the wiki if you find
it valuable.
If/when I have a full working solution I might publish it on my site.

Thank you,

Fredrik Unger

[1] http://sachachua.com/blog/2007/12/clocking-time-with-emacs-org/
[2] https://tree.se/rangereport.el
[3] https://metacpan.org/pod/DateTime#How-DateTime-Math-Works
[4] https://tree.se/t.org

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2014-11-18 10:31 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-11-05 17:00 Recording Time - org-clock-sum Fredrik Unger
2014-11-06  9:14 ` Sebastien Vauban
2014-11-17 18:31 ` Fredrik Unger
2014-11-18  7:52   ` Eric S Fraga
2014-11-18 10:31     ` Fredrik Unger

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).