2014-11-17 2 views
0

두 세트의 iCal 이벤트가 있는데 그 사이에 시간 충돌을 찾으려고합니다. 두 세트의 이벤트에는 되풀이 규칙이 있습니다.파이썬을 사용하여 iCal 이벤트가 충돌합니다.

나는 충돌을 찾는 좋은 전략을 모른다. 내가 가지고있는 유일한 전략 (미친)은 각 이벤트 세트의 반복을 확장하고 충돌을 확인하기 위해 이벤트를 하나씩 비교하는 것입니다. 이것은 옳지 않은 것처럼 보입니다.

일부 기능 또는 타사 라이브러리 또는이를 수행 할 간단한 전략이 있습니까?

감사합니다.

+0

그것은 미친 될 수있다 부동되지 않을 수 있습니다 동안 (오전 8도 일광 절약 변경 후 오전 8시을 유지)하지만, iCal은 반복 규칙을 전체 반복 집합으로 확장 한 것처럼 처리해야한다고 지정 했으므로 적어도이 방법을 사용하면 표준을 따르고 있음을 보증합니다. :) – abarnert

+0

어쨌든, 당신은 iCal4j가 어떻게하는지 보길 원할 것입니다. Java로 작성되었지만 모든 언어로 사용 된 iCal 라이브러리 중에서 가장 완벽한 라이브러리입니다. 또한, "하나 하나씩 이벤트 비교"란 무엇을 의미합니까? O (N + M) time과 dead-simple 코드를 원한다면, 반복 세트를리스트가 아닌 세트로 변환하고'intersect' 메쏘드 (또는'&'연산자)를 사용하십시오. 약간 더 복잡한 코드를 사용하여 O (N + M) 시간 및 O (1) 공간을 원한다면, 정렬 된 iterable에 사용할 동일한 종류의 반복을 사용하십시오. 정렬 된 순서). – abarnert

답변

0

어느 방법 으로든 전체 캘린더 일정을 확장해야합니다.

  • 가능한 일광 절약 변경하는 동안 반복 인스턴스는 A 반복 이벤트의 인스턴스와
  • 예외 (EXDATEs가) 수정 (SEQUENCE NO 등)이다

    • VEVENTS : 당신은 고려해야 다른 시간대에 정의 된 되풀이 이벤트. 오전 8시 오전 9 등을 통해 중간 또는 로컬 시간대에 머물
    • 부동 날짜가된다 당신이 비교하는 이벤트가
  • 관련 문제