【问题标题】:rrule Day of Week after Nth Day of Monthrrule 第 N 天之后的星期几
【发布时间】:2013-12-24 15:40:56
【问题描述】:

每年六月第三个星期一之后的星期二写规则的最佳方式是什么?

目前我这样写规则:

rule_mo = rrule(freq=YEARLY,              
            bymonth=6, 
            byweekday=MO(+3),
            ...)
rule = (x + relativedelta(weekday=TU(+1)) for x in rule_mo)

有没有办法只使用rrule 而不必使用relativedelta 来编写整个规则?

【问题讨论】:

  • 不是和每年六月的第三个星期二(第三个星期一之后的星期二)一样吗?
  • 第三个星期二和第三个星期一之后的星期二不一样。
  • 不清楚,能否举个例子
  • 如果一个月的第一天是星期二,那么第三个星期一之后的星期二实际上就是第四个星期二。
  • 检查此链接kanzaki.com/docs/ical/rrule.html,这里有示例“每四年,11 月的星期一之后的第一个星期二,永远(美国总统选举日):”,我尝试了类似的规则,但不能不确切,但我相信这与您正在寻找的非常相似。

标签: python-dateutil rrule


【解决方案1】:

参考:http://jkbr.github.io/rrule/

rule = RRule.fromText("every June on 3rd Tuesday")

rule.origOptions    
{
   freq: RRule.YEARLY,
   bymonth: [6],
   byweekday: [RRule.TU.nth(3)]
}

rule.toString()     

FREQ=YEARLY;BYMONTH=6;BYDAY=+3TU

rule.toText()   every June on the 3rd Tuesday

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-06
  • 1970-01-01
  • 2020-10-17
  • 2019-10-19
  • 1970-01-01
相关资源
最近更新 更多