带间隔和持续时间的定时命令

时间:2019-02-28 22:38:55

标签: python

我在这个网站上潜伏了很长时间,最终对学习python变得非常认真。因此,我一直在努力将命令传递给AT守护程序。我走了那么远,知道如何将时间与我希望运行的命令一起传递给AT。现在,我想设置开始时间,持续时间和间隔。这是问题,我需要以以下格式将时间传递给AT:小时:分钟(例如23:00)。我会非常感谢python的一些指导。

示例: 如果我想从下午5点开始(开始17:00)并每30分钟运行2小时(运行120分钟)。因此,这将在以下位置运行命令:
17:00
17:30
18:00
18:30
19:00

编辑:感谢lvrf,我最终完成了此操作。感谢您的帮助!

def get_schedule(config):
    schedule = []
    start_time = datetime.datetime.now().replace(hour=config[0], minute=config[1])
    uration = datetime.timedelta(minutes=config[2])
    interval = datetime.timedelta(minutes=config[3])
    end_time = (start_time + duration)
    while start_time <= end_time:
        schedule.append(start_time)
        start_time = start_time + interval
    schedule_strings = []
    for time in schedule:
        schedule_strings.append(time.strftime("%H:%M"))
    return schedule_strings

1 个答案:

答案 0 :(得分:0)

如果您只想生成小时:分钟字符串列表,则可以使用datetime模块来完成。

>>> import datetime
>>> duration = datetime.timedelta(hours=2)
>>> interval = datetime.timedelta(minutes=30)
>>> start_time = datetime.datetime(2019, 2, 28, 17, 00, 0)
>>> times = []
>>> cur_time = start_time
>>> while cur_time <= (start_time + duration):
    times.append(cur_time)
    cur_time = cur_time + interval
>>> time_strings = [t.strftime("%H:%M") for t in times]
>>> time_strings
['17:00', '17:30', '18:00', '18:30', '19:00']