RFC 5545를 통해 읽고있어 어커런스 세트를 올바르게 찾는 방법을 결정하려고합니다. 나는 매주 rrule = 2 (격주)가 있다고 가정 해 봅시다. 나는 또한 화요일, 수요일, 목요일을 위해 평일 규칙 부분을 지정했다. 시작일은 2011-04-07 (목)이고 내 종료일은 2011-04-27 (수)라고 가정 해 보겠습니다. 분명히 날짜보다 중요하지 않은 것을 무시하면 내 발생 집합에 다음과 같은 내용이 포함될 것입니다. 2011-04-07, 2011-04-12, 2011-04-13, 2011-04-21, 2011-04-26, 2011-04- 27.펼쳐지는 iCalendar RRule에서 발생 확인
RFC : "WKST 규칙 부분은 주중 근무 시작일을 지정합니다. 유효한 값은 MO, TU, WE, TH, FR, SA 및 SU입니다. 매주 "RRULE"간격이 1보다 길고 BYDAY 규칙 부분이 지정된 경우 중요합니다. "
내 WKST = MO 인 경우 위의 문장에서 시작일이 WKST가 아니라 WKST부터 시작된다는 의미가 나타납니다. 즉, 시작일 (이 경우 Thu-Wed)을 기준으로 일주일을 사용하는 대신 실제로 WKST로 시작하여 THAT WKST에서 THAT 주 (월 - 일) 및 격주에 속하는 발생을 확인해야합니다. . 그래서, 계산 목적을 위해, 나의 시작 날짜는 실제로 2011-04-04 일 것입니다. 시작일 이전에 떨어 지므로 시작일로 넘어가지만 월 - 일 주간을 붙잡습니다. 내 발생 집합은 실제로는 다음과 같습니다. 2011-04-07, 2011-04-19, 2011-04-20, 2011-04-21 그것은 원래 세트와 크게 다릅니다.
또한 이것이 올바른 계산 방법 인 경우 시작 시간 대신 해당 기간의 시작 부분에서 "시작"해야하는> 1 간격의 다른 빈도에 대한 rrule 상황을 확장하는 것을 의미합니까? 매월 1 일 - 시작 날짜의 달 마지막 날을 포함합니다. 1 월 1 일 - 12 월 31 일을 시작 날짜의 해로 포함합니까?
거기에 iCalendar 전문가가 있기를 바란다 ... 나는 논리 주위에서 내 머리를 감쌀 수 없다. 감사.
업데이트 : 몇 개의 .ics 파일을 만들고 Google 캘린더로 가져 왔습니다. Google에서이를 올바르게 해석한다고 가정하면 INTERVAL> 1 인 월간 확장이 이벤트의 시작일부터 시작되는 한 달이 아닌 해당 월의 마지막 날을 사용한다는 것을 확인할 수 있습니다. YEARLY 규칙은 같은 방식으로 작동하며 올해는 1 월 1 일부터 12 월 31 일까지입니다. 내가 원래 기대했던 것이 아니지만 희망적으로 이것은 다른 누군가를 도울 수 있습니다.
Google 캘린더에서 전화를 걸면 좋습니다. 그래서 같은 맥락에서, 시작 날짜가 2011-04-15이고 BYDAY = FR 일 때 MONTHLY, INTERVAL = 2를 어떻게 처리합니까? 내 세트에는 매월 1 일부터 다음 달의 마지막 날까지 또는 다음 달의 15 일부터 14 일까지, 매월마다의 금요일이 포함됩니까?매주 처리되는 방식을 감안할 때 월별 규칙은 매월 1 일에 시작하고 연도 별 규칙은 1 월 1 일부터 시작됩니다. – heath
정보를 제공해 주셔서 감사합니다. 나는 고군분투하고 있었다. –