Расчет разницы во времени - PullRequest
       3

Расчет разницы во времени

41 голосов
/ 06 августа 2010

в начале и в конце моей программы, у меня есть

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)

Но когда я пытался понять разницу, я получаю синтаксические ошибки .... Я делаю некоторые вещи неправильно, но я не уверен, что происходит ...

По сути, я просто хочу сохранить время в переменной в начале моей программы, затем сохранить второй раз во второй переменной в конце, затем в последнем бите программы, вычислить разницу и отобразить ее , Я не пытаюсь рассчитать время функциональной скорости. Я пытаюсь записать, сколько времени потребовалось пользователю, чтобы пройти через некоторые меню. Каков наилучший способ сделать это?

Ответы [ 4 ]

79 голосов
/ 06 августа 2010

Модуль 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
17 голосов
/ 06 августа 2010
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)
6 голосов
/ 06 августа 2010

Вы не можете рассчитать разницу отдельно ... какая разница будет в 7:59 и 8:00? Попробуйте

import time
time.time()

, который дает вам секунды с начала эпохи.

Затем вы можете получить промежуточное время с чем-то вроде

timestamp1 = time.time()
# Your code here
timestamp2 = time.time()
print "This took %.2f seconds" % (timestamp2 - timestamp1)
2 голосов
/ 24 апреля 2018

time.monotonic () (в основном время работы вашего компьютера в секундах) гарантировано, чтобы не вести себя неправильно при настройке часов вашего компьютера (например, при переходе на / из летнего времени).

>>> import time
>>>
>>> time.monotonic()
452782.067158593
>>>
>>> a = time.monotonic()
>>> time.sleep(1)
>>> b = time.monotonic()
>>> print(b-a)
1.001658110995777
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...