2014-05-07 67 views
0

我已经创建了一个程序,要求用户输入给定的TimeTypeSeconds/Minutes)和objectivetimeinteger)(例如,如果用户输入秒数然后是5,则目标时间是5秒)。另外,该程序还会在开始时检查时间,然后检查后面的时间以计算出elapsed_time。然后我想检查elapsed_time是否大于或等于objective time。我已经写了如下所示的代码(减去a之间b其他不相关的代码)如何将输入的分/秒格式设置为datetime.now()格式?

import time, sys, os, random 
a = datetime.datetime.now().replace(microsecond=0) 
#random code... 
b = datetime.datetime.now().replace(microsecond=0) 
timetype = input("Enter time type: ")#Either Seconds or Minutes 
objectivetime = input("Enter objective time: ")#This will be an integer 
if timetype == 'Seconds': 
    #convert objectivetime to seconds and present in same format as a or b 
else: 
    #convert objectivetime into minutes and present in same format as a or b 
elapsed_time = b-a 
if objectivetime<=elapsed_time: 
    'Well done' 
else: 
    'You have exceeded the objective time' 

有什么办法,该代码可以进行编辑,以获得客观时间的方法一样进行格式化ab(start_time和end_time)??

更新--------------------------------------------- -----------------------------

我该如何计算哪个时间更长(elapsed_time或objtime)?

见更新的代码:

import time, sys, os, random 
import datetime 
a = datetime.datetime.now().replace(microsecond=0) 
print(a) 
#random code... 
time.sleep(3) 
b = datetime.datetime.now().replace(microsecond=0) 
timetype = input("Enter time type: ")#Either Seconds or Minutes 
objectivetime = input("Enter objective time: ")#This will be an integer 
objectivetime = int(objectivetime) # I noticed you didn't do this in your code 
delta = None 
if timetype == 'Seconds':  
    delta = datetime.timedelta(seconds = objectivetime) 
else: 
    delta = datetime.timedelta(minutes = objectivetime) 
objtime = a + delta 
print(objtime) 
#How would I work out which time is greater?? (elapsed_time or objtime) 
elapsed_time = b-a 
print(elapsed_time-objtime) 
+0

它看起来像[@Khaelid答案】(http://stackoverflow.com/a/23528388/4279)解决您的第一个问题:如何转换秒/分钟作为字符串给日期时间对象,第二个问题:如何比较日期时间对象。如果你有更多的问题,那么你可以尝试[问他们作为单独的问题](http://stackoverflow.com/questions/ask),如果他们[在StackOverflow主题](http://stackoverflow.com/help/on-topic) – jfs

回答

2
objectivetime = int(objectivetime) # I noticed you didn't do this in your code 
delta = None 

if timetype == 'Seconds':  
    delta = datetime.timedelta(seconds = objectivetime) 
else: 
    delta = datetime.timedelta(minutes = objectivetime) 

objtime = a + delta 

这会给你喜欢datetime.now()

一个DateTime对象,比较DateTime对象,你可以简单地使用比较操作符。例如,

b <= objtime # Finished before (or on) the objective time 
b > objtime # Finished after the objective time 

你甚至都不需要从b减去a!如果你仍然想,然后比较的时间差,而不是

elapsed_time <= delta # Finished before (or on) the objective time 
elapsed_time > delta # Finished after the objective time 
+0

感谢您的回复,我将如何计算objtime和elapsed_time之间哪个时间更长? –

+0

我已经对代码进行了更新,上面显示的代码是 –

+0

谢谢,这很好用! –

相关问题