Hi, I implemented a couple of functions that provide me with the needed timestamps for my timereport [1]. ex. <2014-11-14 Fri> [s 08:00 e 14:00 (11:00 12:00)] [ 5:00 (5.00)] Summarized from : * Test ** first CLOCK: [2014-11-14 Fri 08:00]--[2014-11-14 Fri 09:00] => 1:00 CLOCK: [2014-11-14 Fri 12:00]--[2014-11-14 Fri 13:00] => 1:00 ** second CLOCK: [2014-11-14 Fri 09:00]--[2014-11-14 Fri 11:00] => 2:00 CLOCK: [2014-11-14 Fri 13:00]--[2014-11-14 Fri 14:00] => 1:00 Started work at 8, ended at 14 lunch break 11-12. worked 5 h. (h:m and decimal representation) One can adapt the format with "timestr". It is based on the org-clock-sum function. Tested only with simple files with complete Time stamps (no dangling clocks etc). timeuniq takes a list of timestamps and returns only timestamps that were unique in the initial list. Suggestion for improvements are welcome, as I am an elisp/org-mode beginner. Fredrik Unger [1] attached range-report.emacs On 11/05/2014 06:00 PM, Fredrik Unger wrote: > 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 >