1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
  | Quintiq file version 2.0 
 |  #parent: #root 
 |  StaticMethod GetDateOfFirstRecurrence ( 
 |    Date startOfPeriod_i, 
 |    Date earliestStart_i, 
 |    Number recurrenceInterval_i 
 |  ) declarative remote as Date 
 |  { 
 |    TextBody: 
 |    [* 
 |      date     := startOfPeriod_i; 
 |      prevDate := date; 
 |       
 |      // For a Weekly pattern the start of the week must be used. 
 |      startDate := earliestStart_i.StartOfWeek(); 
 |       
 |      while( date < startDate ) 
 |      { 
 |        prevDate := date; 
 |        date     := LibCal_RecurrencePatternWeekly::GetDateOfNextRecurrence( date, recurrenceInterval_i ); 
 |      } 
 |       
 |      // Use the last recurrence *before* the earliestStart as first recurrence, 
 |      // because the last occurrence of this recurrence can end after earliestStart, and must therefore be taken into account. 
 |      return prevDate; 
 |    *] 
 |  } 
 |  
  |