在我的课程开始和结束时,我有
from time import strftime
print int(strftime("%Y-%m-%d %H:%M:%S")
Y1=int(strftime("%Y"))
m1=int(strftime("%m"))
d1=int(strftime("%d"))
H1=int(strftime("%H"))
M1=int(strftime("%M"))
S1=int(strftime("%S"))
Y2=int(strftime("%Y"))
m2=int(strftime("%m"))
d2=int(strftime("%d"))
H2=int(strftime("%H"))
M2=int(strftime("%M"))
S2=int(strftime("%S"))
print "Difference is:"+str(Y2-Y1)+":"+str(m2-m1)+":"+str(d2-d1)\
+" "+str(H2-H1)+":"+str(M2-M1)+":"+str(S2-S1)
Run Code Online (Sandbox Code Playgroud)
但是当我试图找到差异时,我会遇到语法错误......我做错了一些事情,但我不确定发生了什么......
基本上,我只想在程序开始时在变量中存储一个时间,然后在第二个变量附近存储第二个变量,然后在程序的最后一位,计算差异并显示它.我不是想尝试一下功能速度.我试图记录用户进入某些菜单所需的时间.做这个的最好方式是什么?
Tim*_*ker 83
该datetime模块将为您完成所有工作:
>>> import datetime
>>> a = datetime.datetime.now()
>>> # ...wait a while...
>>> b = datetime.datetime.now()
>>> print(b-a)
0:03:43.984000
Run Code Online (Sandbox Code Playgroud)
如果你不想显示微秒,只需使用(如建议的gnibbler):
>>> a = datetime.datetime.now().replace(microsecond=0)
>>> b = datetime.datetime.now().replace(microsecond=0)
>>> print(b-a)
0:03:43
Run Code Online (Sandbox Code Playgroud)
Joh*_*ooy 18
from time import time
start_time = time()
...
end_time = time()
seconds_elapsed = end_time - start_time
hours, rest = divmod(seconds_elapsed, 3600)
minutes, seconds = divmod(rest, 60)
Run Code Online (Sandbox Code Playgroud)
你不能分别计算差异... 7:59和8:00会有什么不同?尝试
import time
time.time()
Run Code Online (Sandbox Code Playgroud)
它为您提供了自纪元开始以来的秒数.
然后你可以用类似的东西获得中间时间
timestamp1 = time.time()
# Your code here
timestamp2 = time.time()
print "This took %.2f seconds" % (timestamp2 - timestamp1)
Run Code Online (Sandbox Code Playgroud)
time.monotonic()(基本上是您计算机的正常运行时间(以秒为单位))在调整计算机时钟时(例如在转换到/从夏令时转换时)不会出现异常行为。
>>> import time
>>>
>>> time.monotonic()
452782.067158593
>>>
>>> a = time.monotonic()
>>> time.sleep(1)
>>> b = time.monotonic()
>>> print(b-a)
1.001658110995777
Run Code Online (Sandbox Code Playgroud)