Represents a set of months, weeks, days, hours, minutes or seconds in a recurrence rule.
For a list of all members of this type, see ByNumberCollection Members.
System.Object
System.Collections.CollectionBase
Aspose.iCalendar.ByNumberCollection
[Visual Basic]Public Class ByNumberCollection
Remarks
Corresponds to various BYXXX parts such as BYDAY, BYMONTH of a recurrence rule.
Most of the ByXXX properties of RecurrenceRule are implemented as ByNumberCollection.
Example
Every four years, the first Tuesday after a Monday in November, forever (U.S. Presidential Election day):
[C#]
//Create the pattern programmatically.
RecurrencePattern pattern = new RecurrencePattern();
pattern.StartDate = new DateTime(1996, 11, 5, 9, 0, 0);
RecurrenceRule rule = pattern.RRules.Add();
rule.Frequency = Frequency.Yearly;
rule.Interval = 4;
rule.ByMonth.Add(11);
rule.ByDay.Add(DayOfWeek.Tuesday);
rule.ByMonthDay.Add(new int[] {2, 3, 4, 5, 6, 7, 8});
DateCollection dates = pattern.GenerateOccurrences(
new DateTime(1996, 11, 5, 9, 0, 0),
new DateTime(2004, 11, 2, 17, 0, 0));
foreach (DateTime d in dates)
Console.WriteLine(d);
...
//Create the pattern from iCalendar string.
RecurrencePattern pattern = new RecurrencePattern(
"DTSTART;TZID=US-Eastern:19961105T090000\n" +
"RRULE:FREQ=YEARLY;INTERVAL=4;BYMONTH=11;BYDAY=TU;BYMONTHDAY=2,3,4,5,6,7,8");
DateCollection dates = pattern.GenerateOccurrences(
new DateTime(1996, 11, 5, 9, 0, 0),
new DateTime(2004, 11, 2, 17, 0, 0));
foreach (DateTime d in dates)
Console.WriteLine(d);
[VB]
'Create the pattern programmatically.
Dim pattern As RecurrencePattern = New RecurrencePattern
pattern.StartDate = New DateTime(1996, 11, 5, 9, 0, 0)
Dim rule As RecurrenceRule = pattern.RRules.Add()
rule.Frequency = Frequency.Yearly
rule.Interval = 4
rule.ByMonth.Add(11)
rule.ByDay.Add(DayOfWeek.Tuesday)
rule.ByMonthDay.Add(New Integer() {2, 3, 4, 5, 6, 7, 8})
Dim dates As DateCollection = pattern.GenerateOccurrences( _
New DateTime(1996, 11, 5, 9, 0, 0), New DateTime(2004, 11, 2, 17, 0, 0))
For Each d As DateTime In dates
Console.WriteLine(d)
Next
...
'Create the pattern from iCalendar string.
Dim pattern As RecurrencePattern = New RecurrencePattern( _
"DTSTART;TZID=US-Eastern:19961105T090000" + ControlChars.CrLf + _
"RRULE:FREQ=YEARLY;INTERVAL=4;BYMONTH=11;BYDAY=TU;BYMONTHDAY=2,3,4,5,6,7,8")
Dim dates As DateCollection = pattern.GenerateOccurrences( _
New DateTime(1996, 11, 5, 9, 0, 0), New DateTime(2004, 11, 2, 17, 0, 0))
For Each d As DateTime In dates
Console.WriteLine(d)
Next
Requirements
Namespace: Aspose.iCalendar
Assembly: Aspose.iCalendar (in Aspose.iCalendar.dll)
See Also
ByNumberCollection Members | Aspose.iCalendar Namespace