Wonderful, thanks alot! I can already see this becoming of great use to me.
Best Regards /Alexander On Thu, Sep 15, 2011 at 6:02 PM, Nick Dokos <nicholas.do...@hp.com> wrote: > Alexander Wingård <alexander.wing...@gmail.com> wrote: > >> Let's say I have this: >> >> <2011-09-15 Thu>--<2011-09-16 Fri> >> >> and I put my cursor over this and press C-c C-y my minibuffer will >> spit out 1 day. >> >> I would like a command that does the same thing if i execute it over >> just <2011-09-16 Fri>. >> >> Sometimes I'm interested in how much time there is left to a specific >> appointment. >> > > Here is one way to do it: > > --8<---------------cut here---------------start------------->8--- > (defun aw/org-evaluate-time-range (&optional to-buffer) > (interactive) > (if (org-at-date-range-p t) > (org-evaluate-time-range to-buffer) > ;; otherwise, make a time range in a temp buffer and run o-e-t-r there > (let ((headline (buffer-substring (point-at-bol) (point-at-eol)))) > (with-temp-buffer > (insert headline) > (goto-char (point-at-bol)) > (re-search-forward org-ts-regexp (point-at-eol) t) > (if (not (org-at-timestamp-p t)) > (error "No timestamp here")) > (goto-char (match-beginning 0)) > (org-insert-time-stamp (current-time) nil nil) > (insert "--") > (org-evaluate-time-range to-buffer))))) > --8<---------------cut here---------------end--------------->8--- > > There are probably better implementations; also, you might be able to advise > o-e-t-r, instead of writing a new function, which would have the advantage > of preserving the key binding. > > AFAICT, the above works with dates in the past as well, but it always gives > the absolute value of the difference. > > Nick > >> >> On Thu, Sep 15, 2011 at 4:37 PM, Nick Dokos <nicholas.do...@hp.com> wrote: >> > Alexander Wingård <alexander.wing...@gmail.com> wrote: >> > >> >> Hi! >> >> >> >> I really would want to have a command that given the cursor is over a >> >> timestamp would output the time-range from the current time to that >> >> timestamp. >> >> >> > >> > Can you please provide an example? I can interpret this >> > in a couple of different ways and I'm not sure what you >> > want. >> > >> > Also, when you say "output", do you mean that the function >> > should return e.g. a string representation of whatever it is >> > you want? Or print the result in the minibuffer? >> > Or insert it in the buffer you are editing? (and, if the last, >> > where?) >> > >> > Nick >> > >> >