问题:
我有这个特定时间的列表,例如:
repeat = ['8:15','14:28','19:43','1:21']
现在我正在尝试创建一个函数,该函数将输出一个包含n个日期时间对象的列表,如下所示:
>>> import datetime
>>>
>>> datetime.datetime.now()
datetime.datetime(2018, 10, 30, 17, 5, 55, 908000) # 2018-10-30 17:05:55
>>>
>>> output = magic(repeat, how_many=3) # <---
>>> output
[datetime.datetime(2018, 10, 30, 19, 43), datetime.datetime(2018, 10, 31, 1, 21), datetime.datetime(2018, 10, 31, 8, 15)]
>>>
>>>
>>> for i in output:
>>> print( i.strftime("%Y-%m-%d %H:%M:%S") )
2018-10-30 19:43:00
2018-10-31 01:21:00
2018-10-31 08:15:00
我的进度:
所以我用这个解决方案解决了这个问题:
def next(datetime_object, repeat):
# this function should calculate the next datetime from the datetime_object
return next_datetime_object
def magic(repeat, how_many=10):
converted = []
for i in repeat:
converted.append( datetime.datetime.strptime(i, '%H:%M') )
now = datetime.datetime.now()
output = [ next(now,converted) ]
while len(output) < how_many:
output.append(
next(output[-1] ,converted)
)
return output
虽然我在创建这个next()应该计算下一个日期时间对象的函数时遇到了困难。
另外,如果有人有任何其他比我更好的替代解决方案,请与我分享。
编辑 1(只是为了澄清)
输入: repeat = ['8:15','14:28','19:43','1:21']
功能: magic(repeat, how_many=3)
输出: [ datetime.datetime(2018, 10, 30, 19, 43), datetime.datetime(2018, 10, 31, 1, 21), datetime.datetime(2018, 10, 31, 8, 15) ]
注意:输出取决于电流datetime.datetime.now()。在上面的例子中,当前时间是datetime.datetime(2018, 10, 30, 17, 5, 55, 908000)
相关分类