Closed Bug 332293 Opened 18 years ago Closed 18 years ago

SETPOS does not work correctly

Categories

(Calendar :: Internal Components, defect)

x86
Windows 2000
defect
Not set
normal

Tracking

(Not tracked)

VERIFIED DUPLICATE of bug 322458

People

(Reporter: andrew.dowden, Unassigned)

Details

User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.1
Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.9a1) Gecko/20060329 Mozilla Sunbird/0.3a1+

Boxing Day (Canada)
Observed next weekday after Christmas Day observed (Canada)
RRULE:FREQ=YEARLY;BYMONTH=12;BYMONTHDAY=26;BYDAY=TU,WE,TH,FR;BYSETPOS=1
RRULE:FREQ=YEARLY;BYMONTH=12;BYMONTHDAY=27,28;BYDAY=MO,TU;BYSETPOS=1

In second rule, multiplier effect (2 month-days, and 2 weekdays == 4 possible occurrences per year) should be negated by 'BYSETPOS=1'.  Only first match (per year) should be returned.




Reproducible: Always

Steps to Reproduce:
1. load iCal file, including syntax as above
2. move calendar to December 2010


Actual Results:  
matches: 2010-12-27, and 2010-12-28
 (ALL possible matches)

Expected Results:  
match: 2010-12-27
 (first occurence ONLY)

work around: (split rules)

Boxing Day (Canada) - with workaround
Observed next weekday after Christmas Day observed (Canada)
RRULE:FREQ=YEARLY;BYMONTH=12;BYMONTHDAY=26;BYDAY=TU,WE,TH,FR;BYSETPOS=1
RRULE:FREQ=YEARLY;BYMONTH=12;BYMONTHDAY=27,28;BYDAY=MO
RRULE:FREQ=YEARLY;BYMONTH=12;BYMONTHDAY=27;BYDAY=TU

Tested, and fixes problem (for now).  But would be needed for any imported iCal file using this feature.
Duplicate of bug 322458?
This might explain bug 322458, but the (PayDay.ics) iCal syntax looks Ok.

In rule 1 (my example), the 'BYSETPOS=1' with TU,WE,TH,FR works fine.  Any other instance, where multiple weekdays occur, has also tested Ok (so far).
I loaded and tested PayDay.ics from bug 322458.  It doesn't work.

I then reviewed ALL occurences where I have tested / used BYSETPOS.  I have been mostly focusing on creating the iCal syntax, and dialogs (for same), rather that testing exhaustively.

Conclusion: It may not work at all. (Need to continue testing.)
further testing:

//  first instance

Test 1:  'first Mon or Tue ONLY, after DTSTART'
RRULE:FREQ=MONTHLY;BYDAY=MO,TU;BYSETPOS=1
DTSTART;VALUE=DATE:20060403
DTEND;VALUE=DATE:20060404

result:  'any Mon or Tue, after DTSTART'
(equivalent to)
RRULE:FREQ=MONTHLY;BYDAY=MO,TU
DTSTART;VALUE=DATE:20060403
DTEND;VALUE=DATE:20060404


Test 2:  'first Fri or Sat ONLY, in April ONLY, after DTSTART'
RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=FR,SA;BYSETPOS=1
DTSTART;VALUE=DATE:20060407
DTEND;VALUE=DATE:20060408

result:  'any Fri or Sat, in April ONLY, after DTSTART'
(equivalent to)
RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=FR,SA
DTSTART;VALUE=DATE:20060407
DTEND;VALUE=DATE:20060408


//  last instance

Test 3:  'last Mon or Tue ONLY, after DTSTART'
RRULE:FREQ=MONTHLY;BYDAY=MO,TU;BYSETPOS=-1
DTSTART;VALUE=DATE:20060424
DTEND;VALUE=DATE:20060425

result:  'any Mon or Tue, after DTSTART'
(equivalent to)
RRULE:FREQ=MONTHLY;BYDAY=MO,TU
DTSTART;VALUE=DATE:20060424
DTEND;VALUE=DATE:20060425


Test 4:  'last Fri or Sat ONLY, in April ONLY, after DTSTART'
RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=FR,SA;BYSETPOS=-1
DTSTART;VALUE=DATE:20060428
DTEND;VALUE=DATE:20060429

result:  'any Fri or Sat, in April ONLY, after DTSTART'
(equivalent to)
RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=FR,SA
DTSTART;VALUE=DATE:20060428
DTEND;VALUE=DATE:20060429


(Also tested on Lightning, no noted variance)
This really is bug 322458. bysetpos is simply ignored.

*** This bug has been marked as a duplicate of 322458 ***
Status: UNCONFIRMED → RESOLVED
Closed: 18 years ago
Resolution: --- → DUPLICATE
Status: RESOLVED → VERIFIED
The bugspam monkeys have struck again. They are currently chewing on default assignees for Calendar. Be afraid for your sanity!
Assignee: base → nobody
You need to log in before you can comment on or make changes to this bug.