Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method GetDateOfNextOccurrence ( 
 | 
  output Date dateOfRecurrence_o, 
 | 
  Date date_i 
 | 
) as Date id:Method_LibCal_dlgEvent_GetDateOfNextOccurrence 
 | 
{ 
 | 
  #keys: '[131094.0.1729519603]' 
 | 
  Body: 
 | 
  [* 
 | 
    date     := date_i; 
 | 
    timezone := this.GetCalendarTimeZone(); 
 | 
     
 | 
    if( btnDaily.Pressed() ) 
 | 
    { 
 | 
      date := LibCal_RecurrencePatternDaily::GetDateOfNextOccurrence( dateOfRecurrence_o, date_i, 
 | 
                                                                      [Number]edtEveryNrOfDays.Text(), 
 | 
                                                                      ckbEveryWeekday.Checked() ); 
 | 
    } 
 | 
     
 | 
    else if( btnWeekly.Pressed() ) 
 | 
    { 
 | 
      earliestStart := date_i; 
 | 
       
 | 
      date := LibCal_RecurrencePatternWeekly::GetDateOfNextOccurrence( timezone, dateOfRecurrence_o, date_i,  
 | 
                                                                       durStartTimeOfDay.Duration(), durEndTimeOfDay.Duration(), vhDuration.Data(), earliestStart, 
 | 
                                                                       [Number]edtEveryNrOfWeeks.Text(), 
 | 
                                                                       btnMonday   .Pressed(), 
 | 
                                                                       btnTuesday  .Pressed(), 
 | 
                                                                       btnWednesday.Pressed(), 
 | 
                                                                       btnThursday .Pressed(), 
 | 
                                                                       btnFriday   .Pressed(), 
 | 
                                                                       btnSaturday .Pressed(), 
 | 
                                                                       btnSunday   .Pressed() );   
 | 
    } 
 | 
     
 | 
    else if( btnMonthly.Pressed() ) 
 | 
    { 
 | 
      // Make sure that the entered day of the month is valid. 
 | 
      day := guard( [Number]edtMonthlyDay.Text(), 0 ); 
 | 
       
 | 
      if( day > 0 ) 
 | 
      { 
 | 
        everyNrOfMonths := ifexpr( ckbMonthlyDay.Checked(), edtMonthlyDayEveryNrOfMonths.Text(), 
 | 
                                                            edtMonthlyPatternEveryNrOfMonths.Text() ); 
 | 
                                                             
 | 
        date := LibCal_RecurrencePatternMonthly::GetDateOfNextOccurrence( dateOfRecurrence_o, date_i, [Number]everyNrOfMonths, 
 | 
                                                                          ckbMonthlyDay.Checked(), day, 
 | 
                                                                          ssMonthlyPatternWeekOfMonth.BoundValue(), ssMonthlyPatternDayOfWeek.BoundValue() ); 
 | 
      }                                                                     
 | 
    } 
 | 
     
 | 
    else if( btnYearly.Pressed() ) 
 | 
    { 
 | 
      date := LibCal_RecurrencePatternYearly::GetDateOfNextOccurrence( dateOfRecurrence_o, date_i, [Number]edtEveryNrOfYears.Text(), 
 | 
                                                                       ckbYearlyDay.Checked(), [Number]ssYearlyDayOfMonth.BoundValue(), 
 | 
                                                                       ssYearlyPatternWeekOfMonth.BoundValue(), ssYearlyPatternDayOfWeek.BoundValue() ); 
 | 
    } 
 | 
     
 | 
    return date; 
 | 
  *] 
 | 
} 
 |