计算时间差

76 投票
5 回答
215539 浏览
提问于 2025-04-16 02:26

在我的程序开始和结束时,我有

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)

但是当我尝试计算时间差时,我遇到了语法错误……我知道自己做错了一些事情,但不太清楚具体是什么……

基本上,我只是想在程序开始时把一个时间存储在一个变量里,然后在程序快结束时把第二个时间存储在另一个变量里,最后在程序的最后部分计算这两个时间的差,并显示出来。我并不是想测量某个函数的速度,而是想记录用户在一些菜单中操作所花的时间。有什么好的方法可以做到这一点吗?

5 个回答

13

你不能单独计算差异……那么对于7:59和8:00这两个时间,差异会是什么呢?试试看

import time
time.time()

这段代码会给你从某个起始时间开始到现在的秒数。

然后你可以用类似下面的代码来获取中间的时间

timestamp1 = time.time()
# Your code here
timestamp2 = time.time()
print "This took %.2f seconds" % (timestamp2 - timestamp1)
29
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)

当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。

139

datetime模块会为你完成所有的工作:

>>> import datetime
>>> a = datetime.datetime.now()
>>> # ...wait a while...
>>> b = datetime.datetime.now()
>>> print(b-a)
0:03:43.984000

如果你不想显示微秒,可以直接使用(正如gnibbler所建议的):

>>> a = datetime.datetime.now().replace(microsecond=0)
>>> b = datetime.datetime.now().replace(microsecond=0)
>>> print(b-a)
0:03:43

撰写回答