每周休息三周,然后一周不行

2024-09-22 10:18:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用python中的rruledateutil,不知道如何为以下示例创建rruleset:

  • 周一,连续三周。然后一个星期不行,然后又连续三个星期不行,一个星期不行,以此类推。你知道吗

关于为此创建rrule(set)有什么建议吗?你知道吗


Tags: 示例建议setrrulerruledateutilrruleset
1条回答
网友
1楼 · 发布于 2024-09-22 10:18:41

一种方法是每4周使用一个rruleset带有WEEKLYrrule和相应exrule的rruleset

from dateutil.rrule import rrule, rruleset
from dateutil.rrule import WEEKLY

from dateutil.relativedelta import relativedelta
from datetime import datetime, timedelta

dtstart = datetime(2011, 1, 1)

rrset = rruleset()

weekly_rule = rrule(freq=WEEKLY, dtstart=dtstart)
every_4_weeks = rrule(freq=WEEKLY, interval=4,
                      dtstart=dtstart + relativedelta(weeks=4))

rrset.rrule(weekly_rule)
rrset.exrule(every_4_weeks)

rrset.between(dtstart, dtstart + timedelta(days=65))

结果是:

[datetime.datetime(2011, 1, 8, 0, 0),
 datetime.datetime(2011, 1, 15, 0, 0),
 datetime.datetime(2011, 1, 22, 0, 0),
 datetime.datetime(2011, 2, 5, 0, 0),
 datetime.datetime(2011, 2, 12, 0, 0),
 datetime.datetime(2011, 2, 19, 0, 0),
 datetime.datetime(2011, 3, 5, 0, 0)]

它的工作方式是weekly_rule每周生成一个日期,every_4_weeks每4周生成一个日期,从dtstart之后的第4周开始。这给了你一个三对一的时间表。你知道吗

相关问题 更多 >