gpt4 book ai didi

python - 如何计算下周五凌晨 3 点?

转载 作者:太空狗 更新时间:2023-10-29 17:57:03 24 4
gpt4 key购买 nike

如何将下一个星期五凌晨 3 点计算为 datetime 对象?

说明:即,计算出的日期应始终大于 7 天,且小于或等于 14。

最佳答案

如果安装 dateutil ,那么你可以这样做:

import datetime
import dateutil.relativedelta as reldate

def following_friday(dt):
rd=reldate.relativedelta(
weekday=reldate.FR(+2),
hours=+21)
rd2=reldate.relativedelta(
hour=3,minute=0,second=0,microsecond=0)
return dt+rd+rd2

上面,hours=+21 告诉 relativedelta 在找到下一个星期五之前将 dt 递增 21 小时。因此,如果 dt 是 2010 年 3 月 12 日凌晨 2 点,加上 21 小时就是当天晚上 11 点 ,但是如果 dt 是在凌晨 3 点之后,然后加上 21 小时将 dt 插入星期六。

这是一些测试代码。

if __name__=='__main__':
today=datetime.datetime.now()
for dt in [today+datetime.timedelta(days=i) for i in range(-7,8)]:
print('%s --> %s'%(dt,following_friday(dt)))

产生:

2010-03-05 20:42:09.246124 --> 2010-03-19 03:00:00
2010-03-06 20:42:09.246124 --> 2010-03-19 03:00:00
2010-03-07 20:42:09.246124 --> 2010-03-19 03:00:00
2010-03-08 20:42:09.246124 --> 2010-03-19 03:00:00
2010-03-09 20:42:09.246124 --> 2010-03-19 03:00:00
2010-03-10 20:42:09.246124 --> 2010-03-19 03:00:00
2010-03-11 20:42:09.246124 --> 2010-03-19 03:00:00
2010-03-12 20:42:09.246124 --> 2010-03-26 03:00:00
2010-03-13 20:42:09.246124 --> 2010-03-26 03:00:00
2010-03-14 20:42:09.246124 --> 2010-03-26 03:00:00
2010-03-15 20:42:09.246124 --> 2010-03-26 03:00:00
2010-03-16 20:42:09.246124 --> 2010-03-26 03:00:00
2010-03-17 20:42:09.246124 --> 2010-03-26 03:00:00
2010-03-18 20:42:09.246124 --> 2010-03-26 03:00:00
2010-03-19 20:42:09.246124 --> 2010-04-02 03:00:00

凌晨 3 点之前:

two = datetime.datetime(2010, 3, 12, 2, 0)
for date in [two+datetime.timedelta(days=i) for i in range(-7,8)]:
result = following_friday(date)
print('{0}-->{1}'.format(date,result))

产量:

2010-03-05 02:00:00-->2010-03-12 03:00:00
2010-03-06 02:00:00-->2010-03-19 03:00:00
2010-03-07 02:00:00-->2010-03-19 03:00:00
2010-03-08 02:00:00-->2010-03-19 03:00:00
2010-03-09 02:00:00-->2010-03-19 03:00:00
2010-03-10 02:00:00-->2010-03-19 03:00:00
2010-03-11 02:00:00-->2010-03-19 03:00:00
2010-03-12 02:00:00-->2010-03-19 03:00:00
2010-03-13 02:00:00-->2010-03-26 03:00:00
2010-03-14 02:00:00-->2010-03-26 03:00:00
2010-03-15 02:00:00-->2010-03-26 03:00:00
2010-03-16 02:00:00-->2010-03-26 03:00:00
2010-03-17 02:00:00-->2010-03-26 03:00:00
2010-03-18 02:00:00-->2010-03-26 03:00:00
2010-03-19 02:00:00-->2010-03-26 03:00:00

关于python - 如何计算下周五凌晨 3 点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2436840/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com