Python question
    Paul Lussier 
    p.lussier at comcast.net
       
    Tue Jan 13 10:41:19 EST 2009
    
    
  
"Thomas Charron" <twaffle at gmail.com> writes:
>   Example:
>
>>>> strftime("HH:MM:SS ", localtime())
> '14:17:15'
Ah, I see.  So, if I do this:
  >>> begin = time.time()
  [... long wait here ... ]
  >>> end = time.time()
  >>> time.strftime("%H:%M:%S", time.localtime(end - begin))
  '19:16:07'
so, the MM:SS are correct, but the 19 for hours is incorrect.  It
should be 00, because "long wait here" was 16:07.
  >>> end - begin
  967.31416082382202
  >>> time.localtime(end - begin)
  (1969, 12, 31, 19, 16, 7, 2, 365, 0)
So far, it seems my best bet is to do the math on the difference
between end, begin myself; something like this:
  def ElapsedTime (time):
      """Convert a float into HH:MM:SS string"""
      days = time / 60 / 60 / 24
      if days < 1:
         days = 0
      mins = int(time / 60)
      if mins > 60:
          hours = int(mins / 60)
          mins = int(time % 60)
      else:
          hours = 0
      secs = int(((time % 60) - int(mins)) * 60)
      days  = (days  < 10) and ("0%s" % days)  or days
      hours = (hours < 10) and ("0%s" % hours) or hours
      mins  = (mins  < 10) and ("0%s" % mins ) or mins 
      secs  = (secs  < 10) and ("0%s" % secs ) or secs 
      return "%s:%s:%s:%s" % (days, hours, mins, secs)
I'm certainly appreciative of better ways to do this :)
Thanks.
-- 
Seeya,
Paul
    
    
More information about the gnhlug-discuss
mailing list