【发布时间】:2014-05-07 20:56:43
【问题描述】:
我创建了一个程序,要求用户输入给定的TimeType (Seconds/Minutes) 和 objectivetime (integer)(例如,如果用户输入 Seconds 然后 5,那么目标时间是5 秒)。此外,该程序还会在开始时检查时间,然后检查之后的时间以计算出elapsed_time。然后我想检查elapsed_time 是否大于或等于objective time。我编写的代码如下所示(减去a 和b 之间的其他不相关代码)
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'
有没有什么方法可以编辑代码以将目标时间格式化为与a和b(开始时间和结束时间)相同的方式??
更新---------------------------------------------- ----------------------------------------
我如何计算出哪个时间更大(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)
【问题讨论】:
-
看起来@Khaelid answer 解决了您的第一个问题:如何将作为字符串给出的秒/分钟转换为日期时间对象和第二个问题:如何比较日期时间对象。如果您有更多问题,那么您可以尝试ask them as separate question(s) 如果他们是on topic on StackOverflow
标签: python datetime python-3.x time python-3.2