2012-02-23 3 views
1

의 확장 또는 RRULE 완료, 내가 보이는 예를 하나, 일부 재발을 확장 관리 등의 예를 들어 사용가 견고하고 dateutil.rrulestr 사용하여 파이썬

DTSTART;TZID=Europe/Zurich:20100930T183000 
DTEND;TZID=Europe/Zurich:20100930T193000 
RRULE:FREQ=DAILY;UNTIL=20101005T163000Z 
BEGIN:VTIMEZONE 
... 

그러나

my_rrule.between(datetime.datetime(2010, 10, 2, 11, 00, tzinfo=pytz.utc), 
       datetime.datetime(2010, 10, 9, 11, 00, tzinfo=pytz.utc))) 

, 이것은 나에게 최종 datetimes가 아니라 이벤트에 대한 시작 datetimes 만 제공합니다. 종료 시간도 얻을 수있는 방법이 있습니까? (시작 - 끝 델타를 직접 계산하고 모든 시작 시간에 적용하는 것보다 깔끔함).

DTSTART;VALUE=DATE:20120225 
DTEND;VALUE=DATE:20120226 
RRULE:FREQ=WEEKLY;BYDAY=SA 
BEGIN:VTIMEZONE 
... 

나는() 호출과 같은이 일을 확장하려고하면, 나는 오류가 발생 :

또한, 일부 재발는 하루 종일 이벤트를하고 형태 일 수있다

TypeError: can't compare offset-naive and offset-aware datetimes 

모든 종류의 되풀이 (이상적인 경우에 따라 날짜 또는 datetime 값을 반환)에 사용할 수있는 쿼리가 있습니까?

답변

1

dateutil.rrule 친구에게는 기간에 대한 개념이 없습니다. 즉, 정시에 반복되는 규칙입니다.

내 솔루션은 rruleset을 기간을 허용하는 (또는 기본값을 제공하는) 사용자 지정 클래스로 바꾸는 것이 었습니다.

그런 다음 나는 어커런스를 생성하기 위해 어커런스를 생성하고 각 어커런스마다 지속 시간을 지정할 수 있습니다.

관련 문제