2010-08-06 11 views
30

गिना जा रहा है, मैंशुरू और मेरे कार्यक्रम के अंत में समय अंतर

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) 

है लेकिन जब मैं अंतर पाने की कोशिश की, मैं वाक्यविन्यास त्रुटियों मिल .... मैं कुछ चीजें गलत कर रहा हूँ, लेकिन मैं मूल रूप से यकीन है कि क्या चल रहा है नहीं कर रहा हूँ ...

, मैं सिर्फ पर अपने कार्यक्रम के शुरू में एक चर में एक समय की दुकान है, तो अंत के पास एक दूसरे चर में एक 2 बार की दुकान है, तो करना चाहते हैं कार्यक्रम का आखिरी बिट, अंतर की गणना करें और इसे प्रदर्शित करें। मैं एक कार्य गति समय की कोशिश नहीं कर रहा हूँ। मैं लॉग इन करने का प्रयास कर रहा हूं कि उपयोगकर्ता को कुछ मेनू के माध्यम से प्रगति करने में कितना समय लगेगा। इसे करने का बेहतरीन तरीका क्या है?

+3

इस बारे में सोचें कि उपयोगकर्ता क्या शुरू करता है टी 8:59:34 और 9:10:12 –

उत्तर

65

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 
+4

पर खत्म होता है यदि आप माइक्रोसेकंड नहीं चाहते हैं, तो आप 'a = datetime.datetime.now() का उपयोग कर सकते हैं। (microsecond = 0)' –

+1

@gnibbler: अरे, अच्छा। स्ट्रिंग इंडेक्स के साथ गड़बड़ करने से काफी बेहतर है। –

+0

आप '0:03:43' स्ट्रिंग प्राप्त करने के लिए c = b-a, str (c) का उपयोग कर सकते हैं –

13
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) 
6

आप अलग-अलग मतभेदों की गणना नहीं कर सकते ... इससे 7:59 और 8:00 बजे के लिए क्या अंतर आएगा?

import time 
time.time() 

जो आपको युग की शुरुआत के बाद से सेकंड देता है।

फिर आप कुछ

तरह
timestamp1 = time.time() 
# Your code here 
timestamp2 = time.time() 
print "This took %.2f seconds" % (timestamp2 - timestamp1) 
संबंधित मुद्दे