【问题标题】:How would I format inputted minutes/seconds into datetime.now() format?如何将输入的分钟/秒格式化为 datetime.now() 格式?
【发布时间】:2014-05-07 20:56:43
【问题描述】:

我创建了一个程序,要求用户输入给定的TimeType (Seconds/Minutes) 和 objectivetime (integer)(例如,如果用户输入 Seconds 然后 5,那么目标时间是5 秒)。此外,该程序还会在开始时检查时间,然后检查之后的时间以计算出elapsed_time。然后我想检查elapsed_time 是否大于或等于objective time。我编写的代码如下所示(减去ab 之间的其他不相关代码)

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(开始时间和结束时间)相同的方式??

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

我如何计算出哪个时间更大(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)

【问题讨论】:

标签: python datetime python-3.x time python-3.2


【解决方案1】:
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()

要比较日期时间对象,您可以简单地使用比较运算符。例如,

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

【讨论】:

  • 感谢您的回复,我该如何计算 objtime 和 elapsed_time 之间哪个时间更大?
  • @HamzahAkhtar:向其他人表明问题已得到解答;你可以accept the answer
猜你喜欢
  • 2012-09-10
  • 2010-12-22
  • 1970-01-01
  • 1970-01-01
  • 2011-10-20
  • 2013-02-13
  • 2012-08-29
  • 2016-12-13
  • 1970-01-01
相关资源
最近更新 更多