From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Sebastien Vauban" Subject: Re: [bug] Remote durations are considered as fractions Date: Wed, 02 May 2012 12:32:13 +0200 Message-ID: <80pqamq3f6.fsf@somewhere.org> References: <80mx6t2dt7.fsf@somewhere.org> <87y5q3b3xf.fsf@gnu.org> <80hawfj1tu.fsf@somewhere.org> <87ty0ezm0w.fsf@altern.org> <8062cunncw.fsf@somewhere.org> <87k41agfae.fsf@altern.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org-mXXj517/zsQ@public.gmane.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org-mXXj517/zsQ@public.gmane.org To: emacs-orgmode-mXXj517/zsQ@public.gmane.org Hi Bastien, Bastien wrote: > "Sebastien Vauban" writes: > >> I think this is it... > > Yes.. but in fact, this is precisely the difference between the `t' and t= he > `T' flags - the latter displays seconds while the former display the outp= ut > according to `org-table-duration-custom-format', which you can customize. > Sorry I didn't mention this before. I have the impression you mixed, in the above, seconds with *fraction of* seconds: - the flag `T' currently means HH:MM:SS, while - the flag `t' currently means "fractional time" of hours (by default). As you say, `t' may be further customized: =E2=94=8F=E2=94=81=E2=94=81=E2=94=81=E2=94=81 =E2=94=83 org-table-duration-custom-format is a variable defined in `or= g-table.el'. =E2=94=83 Its value is hours =E2=94=83=20 =E2=94=83 Documentation: =E2=94=83 Format for the output of calc computations like $1+$2;t. =E2=94=83 The default value is 'hours, and will output the results as a =E2=94=83 number of hours. Other allowed values are 'seconds, 'minutes= and =E2=94=83 'days, and the output will be a fraction of seconds, minutes = or =E2=94=83 days. =E2=94=97=E2=94=81=E2=94=81=E2=94=81=E2=94=81 Hence, you really have 5 cases: - t, fraction of days - t, fraction of hours - t, fraction of minutes - t, fraction of seconds - T, HH:MM:SS Those 5 cases are currently handled (in that order) in the following functi= on: --8<---------------cut here---------------start------------->8--- (defun org-table-time-seconds-to-string (secs &optional output-format) "Convert a number of seconds to a time string. If OUTPUT-FORMAT is non-nil, return a number of days, hours, minutes or seconds." (let* ((secs0 (abs secs)) (res (cond ((eq output-format 'days) (format "%.3f" (/ (float secs0) 86400))) ((eq output-format 'hours) (format "%.2f" (/ (float secs0) 3600))) ((eq output-format 'minutes) (format "%.1f" (/ (float secs0) 60))) ((eq output-format 'seconds) (format "%d" secs0)) (t (org-format-seconds "%.2h:%.2m:%.2s" secs0))))) (if (< secs 0) (concat "-" res) res))) --8<---------------cut here---------------end--------------->8--- My patch just addressed the HH:MM:SS format (that is, the `T' flag). It does not impact the fractional representation of time (the `t' flag). Best regards, Seb --=20 Sebastien Vauban