0

So I wrote a python code that converts seconds into hour minutes and secs, but the code doesn't look neat. What would be a better way of doing what my script is doing?

from fractions import Fraction as Frac
from decimal import Decimal as Deci

def Hrs(mins,hr=[],deci=[],hrs=True):
  return(Seperator(mins/60))

def Seperator(Decimal,num=[],deci=[],nums=True):
  del num[:],deci[:]
  for item in str(Decimal):
   if item == '.':
    deci.append(item)
    nums = False
    continue
   num.append(item)if nums else deci.append(item)
  return''.join(num),''.join(deci)

def Mins(secs):
  t = Deci(float(Frac(secs,60)))
  return t

def Secs(deci):
  r = Deci(float(deci*60))
  return r

def Clean(decimal,deci=[],p=True):
  del deci[:] 
  for item in str(decimal):
   if item == '.':
    if p:deci.append(item);p=False;continue
    else: break
   deci.append(item)
  return float(''.join(deci))

if __name__ == '__main__':
  Seconds = 6033
  Hours   = Hrs(Mins(Seconds))[0]
  Minutes = int(Secs(Clean(Hrs(Mins(Seconds))[1])))
  Seconds = int(eval(Seperator(Secs(Clean(Hrs(Mins(Seconds))[1])))[1])*60)
  print '{}:{}:{}'.format(Hours,Minutes,Seconds)

2 Answers2

2

Absolutely. Here you go:

def convert(total):
    secs = total%60
    total /= 60
    minutes = total%60
    total /= 60
    hours = total%24
    days = total/24
    return (days, hours, minutes, secs)

convert(13246345)

Output: (153, 7, 32, 25)

Carles Mitjans
  • 4,786
  • 3
  • 19
  • 38
0

This should do the trick

import time

localtime   = time.localtime()
timeString  = time.strftime("%Y%m%d%H%M%S", localtime)

timeString  = time.strftime("%H:%M:%S")
print timeString
Shijo
  • 9,313
  • 3
  • 19
  • 31