Convert milliseconds to hours, min, and seconds python

49,823

Solution 1

If You want one single function:

millis=input("Enter time in milliseconds ")
millis = int(millis)
seconds=(millis/1000)%60
seconds = int(seconds)
minutes=(millis/(1000*60))%60
minutes = int(minutes)
hours=(millis/(1000*60*60))%24

print ("%d:%d:%d" % (hours, minutes, seconds))

Solution 2

Try this:

 def convertMillis(millis):
     seconds=(millis/1000)%60
     minutes=(millis/(1000*60))%60
     hours=(millis/(1000*60*60))%24
     return seconds, minutes, hours

 def main():
     millis=input("Enter time in milliseconds ")
     con_sec, con_min, con_hour = convertMillis(int(millis))
     print("{0}:{1}:{2}".format(con_hour, con_min, con_sec))

 main()

The problems seem to be:

  1. You lack the understanding of local and global variables. Just because a variable is in your convertMillis doesn't mean main will get to read it. You have to explicitly return them.
  2. You misunderstood the syntax of print, input and return
Share:
49,823
Admin
Author by

Admin

Updated on December 19, 2020

Comments

  • Admin
    Admin over 3 years

    I need to convert milliseconds to seconds minute hours. I have code like

    def convertMillis(millis):
        seconds=(milli/1000)%60
        minutes=(milli/(1000*60))%60
        hours=(milli/(1000*60*60))%24
    
        return
    
    def main():
        milli=print(input("Enter time in milliseconds "))
    
        print(hours,":",minutes,":",seconds
    
    main()
    

    But it's not a very good solution.

    I would like to know the most pythonic way to do something like

    >>> convertmillis(5500)
    0:0:5
    
  • zondo
    zondo about 8 years
    Why not take advantage of divmod()?
  • primo
    primo over 2 years
    not getting proper hours and getting 0 for minutes and seconds