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
28
29
30
31
| Quintiq file version 2.0
| #parent: #root
| StaticMethod GetDateOfNextOccurrence (
| output Date dateOfRecurrence_o,
| Date date_i,
| Number recurrenceInterval_i,
| Boolean isDate_i,
| Number day_i,
| String weekOfMonth_i,
| String dayOfWeek_i
| ) declarative remote as Date
| {
| TextBody:
| [*
| date := date_i;
|
| // Don't get the next recurrence the first time, it is already determined.
| if( date_i <> dateOfRecurrence_o )
| {
| // Get the start of the next recurrence.
| dateOfRecurrence_o := LibCal_RecurrencePatternYearly::GetDateOfNextRecurrence( dateOfRecurrence_o, recurrenceInterval_i );
| }
|
| // Determine the applicable date.
| // The logic that is implemented for the monthly pattern can be used here.
| date := ifexpr( isDate_i, LibCal_RecurrencePatternMonthly::GetDateOfDayOfMonth( dateOfRecurrence_o, day_i ),
| LibCal_RecurrencePatternMonthly::GetDateOfDayOfMonth( dateOfRecurrence_o, weekOfMonth_i, dayOfWeek_i ) );
|
| return date;
| *]
| }
|
|