Calculating Time Difference
在我的节目开始和结束时,我
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | 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 2 3 4 5 6 | >>> import datetime >>> a = datetime.datetime.now() >>> # ...wait a while... >>> b = datetime.datetime.now() >>> print(b-a) 0:03:43.984000 |
如果您不想显示微秒,只需使用(如gnibler建议的那样):
1 2 3 4 | >>> a = datetime.datetime.now().replace(microsecond=0) >>> b = datetime.datetime.now().replace(microsecond=0) >>> print(b-a) 0:03:43 |
1 2 3 4 5 6 7 8 9 10 | 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) |
您不能单独计算差异…7点59分和8点有什么区别?尝试
1 2 | import time time.time() |
它给你从新纪元开始的秒数。
然后你可以得到中间时间
1 2 3 4 | timestamp1 = time.time() # Your code here timestamp2 = time.time() print"This took %.2f seconds" % (timestamp2 - timestamp1) |
time.dumonic()(基本上是你的计算机的正常运行时间,以秒为单位)可以保证当你的计算机的时钟被调整时(例如从夏令时转换到夏令时/从夏令时转换到夏令时时)不会出现错误行为。
1 2 3 4 5 6 7 8 9 10 | >>> import time >>> >>> time.monotonic() 452782.067158593 >>> >>> a = time.monotonic() >>> time.sleep(1) >>> b = time.monotonic() >>> print(b-a) 1.001658110995777 |