Calendar 使用iCal每5天(或第4/3天,如果是周末或假日)举办一次活动

Calendar 使用iCal每5天(或第4/3天,如果是周末或假日)举办一次活动,calendar,google-calendar-api,icalendar,Calendar,Google Calendar Api,Icalendar,在巴西,我的发薪日是每月的第五天 但如果第5天是周六/周日,则付款将在第4天进行 如果第4天是星期六/星期日,则相同:然后付款将在第3天进行。等等 有没有办法创建一个可以与Google Calendar和iCal配合使用的活动?您可以通过iCalendar实现这一点,至少对于周末来说是这样 考虑以下规则: DTSTART;TZID=US-Eastern:20160505T000000 RRULE:FREQ=MONTHLY;BYMONTHDAY=1,2,3,4,5;BYDAY=MO,TU,WE,T

在巴西,我的发薪日是每月的第五天

但如果第5天是周六/周日,则付款将在第4天进行

如果第4天是星期六/星期日,则相同:然后付款将在第3天进行。等等


有没有办法创建一个可以与Google Calendar和iCal配合使用的活动?

您可以通过iCalendar实现这一点,至少对于周末来说是这样

考虑以下规则:

DTSTART;TZID=US-Eastern:20160505T000000
RRULE:FREQ=MONTHLY;BYMONTHDAY=1,2,3,4,5;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-1
该规则的评估如下:

  • FREQ=每月一次;BYMONTHDAY=1,2,3,4,5
    :扩展到每月的第一、第二、第三、第四和第五天
  • BYDAY=MO,TU,WE,TH,FR
    :按周过滤,只保留工作日/删除周末
  • BYSETPOS=-1
    :仅保留集合的最后一天
您可以在以下位置验证结果:

这是你的电话号码

不过,在假期里不可能做到这一点


更新:

这实际上足以说明

RRULE:FREQ=MONTHLY;BYMONTHDAY=3,4,5;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-1
由于周末最多两天,发薪日必须在每月的第三、第四或第五天。同样,这并没有把假期考虑在内

假期总是需要特别考虑的。
RRULE
不仅不支持任意日期的这种逻辑,有时很难甚至不可能通过RRULE本身来表达假期。在一些国家,某些假日总是在特定的一天,除非是在周末,在这种情况下,假日是在周末之前的星期五或之后的星期一。或者考虑复活节日期和假期,他们不能用一个规则来表达。 别忘了有些节日可能会时不时地改变(比如某些国家的“国王节”或“女王节”)


根据上述规则,如果发薪日在假日,您最好手动管理这些数据,并添加一个RDATE和EXDATE。

您可以使用iCalendar实现这一点,至少在周末是这样

考虑以下规则:

DTSTART;TZID=US-Eastern:20160505T000000
RRULE:FREQ=MONTHLY;BYMONTHDAY=1,2,3,4,5;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-1
该规则的评估如下:

  • FREQ=每月一次;BYMONTHDAY=1,2,3,4,5
    :扩展到每月的第一、第二、第三、第四和第五天
  • BYDAY=MO,TU,WE,TH,FR
    :按周过滤,只保留工作日/删除周末
  • BYSETPOS=-1
    :仅保留集合的最后一天
您可以在以下位置验证结果:

这是你的电话号码

不过,在假期里不可能做到这一点


更新:

这实际上足以说明

RRULE:FREQ=MONTHLY;BYMONTHDAY=3,4,5;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-1
由于周末最多两天,发薪日必须在每月的第三、第四或第五天。同样,这并没有把假期考虑在内

假期总是需要特别考虑的。
RRULE
不仅不支持任意日期的这种逻辑,有时很难甚至不可能通过RRULE本身来表达假期。在一些国家,某些假日总是在特定的一天,除非是在周末,在这种情况下,假日是在周末之前的星期五或之后的星期一。或者考虑复活节日期和假期,他们不能用一个规则来表达。 别忘了有些节日可能会时不时地改变(比如某些国家的“国王节”或“女王节”)

根据上面的规则,如果发薪日是在假日,您最好手动管理这些数据,并添加RDATE和EXDATE