Вычисление разницы во времени
в начале и в конце моей программы, я
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)
Но когда я попытался получить разницу, я получил синтаксические ошибки... Я делаю несколько вещей неправильно, но я не уверен, что происходит...
В принципе, я просто хочу сохранить время в переменной в начале моей программы, а затем сохранить второй раз во второй переменной ближе к концу, а затем в последнем бите программы вычислить разницу и отобразить ее, Я не пытаюсь увеличить скорость работы. Я пытаюсь зарегистрировать, сколько времени потребовалось для пользователя, чтобы продвигаться через некоторые меню. Каков наилучший способ сделать это?
Ответы
Ответ 1
Модуль 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
Ответ 2
from time import time
start_time = time()
...
end_time = time()
time_taken = end_time - starttime # time_taken is in seconds
hours, rest = divmod(time_taken,3600)
minutes, seconds = divmod(rest, 60)
Ответ 3
Вы не можете рассчитать разницу в отдельности... какая разница для 7:59 и 8:00? Попробуйте
import time
time.time()
который дает вам секунды с начала эпохи.
Затем вы можете получить промежуточное время с чем-то вроде
timestamp1 = time.time()
# Your code here
timestamp2 = time.time()
print "This took %.2f seconds" % (timestamp2 - timestamp1)