【问题标题】:Convert milliseconds to hours, min, and seconds python [closed]将毫秒转换为小时、分钟和秒 python [关闭]
【发布时间】:2016-06-29 14:48:24
【问题描述】:

我需要将毫秒转换为秒分小时。我有类似的代码

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()

但这不是一个很好的解决方案。

我想知道最pythonic的方式来做类似的事情

>>> convertmillis(5500)
0:0:5

【问题讨论】:

  • 您在print 通话结束时遗漏了)
  • 您可以使用minutes, seconds = divmod(milli, 100)hours, minutes = divmod(minutes, 60) 来简化convertMillis()。此外,你没有返回任何东西。你应该说return (hours, minutes, seconds)。此外,在main() 中,您将milli 定义为print() 的返回值。 print() 总是返回无。您可以从开头取print(,从结尾取)。另外,要打印它,请使用print(":".join(convertMillis(int(milli))))
  • import datetime 然后在你的函数中:duration = datetime.timedelta(milliseconds=millis) 最后:return (duration.hours, duration.minutes, duration.seconds)
  • 如果你想要一个更大的数字,你应该删除 % 24 几个小时(我需要计算我工作了多少小时,它是 > 24)

标签: python function datetime time


【解决方案1】:

试试这个:

 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()

问题似乎是:

  1. 您缺乏对局部和全局变量的理解。仅仅因为变量在您的convertMillis 中并不意味着main 会读取它。您必须明确返回它们。
  2. 您误解了printinputreturn 的语法

【讨论】:

  • 为什么不利用divmod()
【解决方案2】:

如果你想要一个单一的功能:

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))

【讨论】:

  • 没有得到正确的小时数和分钟和秒数为 0
猜你喜欢
  • 2012-09-27
  • 2016-07-18
  • 2018-11-16
  • 1970-01-01
  • 2013-01-12
  • 2023-03-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多