我正在尝试编写一个脚本,该脚本在后台连续运行以倒计时一次重复的每周活动。例如,它应该告诉我达到指定时间需要多少天,几小时和几分钟。
如果我有特定的日期和时间,我知道该怎么做。
import datetime
delta = datetime.datetime(2018, 5, 5, 8) - datetime.datetime.now()
但是,如果我没有特定的日期和时间怎么办?日期时间可以让我选择星期几吗?
编辑:
即我需要这样的伪代码。
delta = datetime(Thursday 8 PM) - datetime.datetime.now()
#returns datetime or timedelta in days, hours, minutes
答案 0 :(得分:2)
编辑: 感谢Ethan,感谢您的建设性建议。 我写了一个小脚本,它应该可以满足您的要求:
import datetime
import time
wanted_day = 'thursday'
wanted_time = 8
list = [['monday', 0],['tuesday', 1],['wednesday', 2],['thursday', 3],['friday', 4],['saturday', 5],['sunday', 6]]
for i in list:
if wanted_day == i[0]:
number_wanted_day = i[1]
# today delivers the actual day
today = datetime.datetime.today().weekday()
# delta_days describes how many days are left until the wanted day
delta_days = number_wanted_day - today
# time delivers the actual time
time = time.localtime(time.time())
if wanted_time > time[3]:
delta_hours = wanted_time - time[3]
delta_mins = 59 - time[4]
delta_secs = 59 - time[5]
else:
delta_days = delta_days - 1
delta_hours = 23 - time[3] + wanted_time
delta_mins = 59 - time[4]
delta_secs = 59 - time[5]
print [delta_days, delta_hours, delta_mins, delta_secs]
输出如下:
[2, 21, 3, 49]
2是天数,21是小时数,3是分钟数,49是秒数(我使用星期四上午8点作为通缉时间)。 您只需要以0-23格式输入时间,而上午和下午则需要对其进行调整