我正在花时间作为Array
格式的用户输入。让我们说00:00,现在我想继续增加一分钟的时间,然后把它变成00:01,00:02,等等。
另外,我从用户HH:MM
和start_time
获取两个输入作为字符串。如何在几分钟内计算两次之间的差异?
我是Python的新手,任何帮助都会受到赞赏!
我使用以下代码:
end_time
我无法使用timedelta增加#to calculate difference in time
time_diff = datetime.strptime(end_time, '%H:%M') - datetime.strptime(start_time, '%H:%M')
minutes = int(time_diff.total_seconds()/60)
print minutes
#to convert string to time format HH:MM
start_time = datetime.strptime(start_time, '%H:%M').time()
#to increment time by 1 minute
start_time = start_time + datetime.timedelta(minutes=1)
。
答案 0 :(得分:1)
import datetime
time_diff = datetime.datetime.strptime(end_time, '%H:%M') - datetime.datetime.strptime(start_time, '%H:%M')
minutes = int(time_diff.total_seconds()/60)
print minutes
datetime
是datetime
模块的一个类,它有一个名为strptime
的类方法。命名法有点令人困惑,但这应该按照你的意愿行事。
至于添加时间增量,您需要将开始时间存储为datetime
对象,以使其起作用:
start_datetime = datetime.datetime.strptime(start_time, '%H:%M')
start_datetime = start_datetime + datetime.timedelta(minutes=1)
print start_datetime
答案 1 :(得分:0)
问题的第一部分,您可以使用datetime module:
from datetime import datetime as dt
from datetime import timedelta as td
UsrInput = '00:00'
fmtString = '%H:%M'
myTime = dt.strptime(UsrInput, fmtString)
increment = td(0,1)
for count in range(10):
myTime += increment
print (dt.strftime(myTime, fmtString))
第二部分也将使用datetime,如下:
from datetime import datetime as dt
from datetime import timedelta as td
start_time = '00:01'
end_time = '00:23'
fmtString = '%H:%M'
myStart = dt.strptime(start_time, fmtString)
myEnd = dt.strptime(end_time, fmtString)
difference = myEnd - myStart
print(td.strftime(difference, '%M')