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 ); *] }