Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method UpdateDuration () id:Method_LibCal_dlgEvent_UpdateDuration 
 | 
{ 
 | 
  #keys: '[131094.0.992053406]' 
 | 
  Body: 
 | 
  [* 
 | 
    duration := Duration::Zero(); 
 | 
    timezone := TimeZone::UTCTimeZone();  // Use the UTC-timezone here, don't correct for a specific timezone.   
 | 
     
 | 
    // Always use the controls on pnlIsNotRecurring for calculating the duration, also in case of recurrence.  
 | 
    // These controls are always kept up-to-date, also when the time-controls on pnlIsRecurring are changed. 
 | 
    if( datStartDate.Date().IsFinite() and durStartTimeOfDay.Duration().IsFinite() and 
 | 
        datEndDate  .Date().IsFinite() and durEndTimeOfDay  .Duration().IsFinite() ) 
 | 
    { 
 | 
      // Don't use AddAsPeriod here, the 'nett' duration should be calculated here. 
 | 
      start := datStartDate.Date().Add( timezone, durStartTimeOfDay.Duration() ); 
 | 
      end   := datEndDate  .Date().Add( timezone, durEndTimeOfDay  .Duration() ); 
 | 
     
 | 
      duration := end - start; 
 | 
    } 
 | 
     
 | 
    // When running in days only mode, ceil the duration to a full day. 
 | 
    if( LibCal_Event::USE_ONLY_DAYS() ) 
 | 
    { 
 | 
      duration := duration.Ceil( Duration::Days( 1 ) ); 
 | 
    } 
 | 
     
 | 
    // Update the ValueHolder, which will update the labels that show the duration. 
 | 
    vhDuration.Data( duration ); 
 | 
  *] 
 | 
} 
 |