Quintiq file version 2.0 #parent: #root Method UpdateDuration () id:Method_LibCal_dlgEditTimeInterval_UpdateDuration { #keys: '[131094.0.2073176582]' Body: [* if( dsStartDate.Date().IsFinite() and dsEndDate .Date().IsFinite() ) { timezone := TimeZone::UTCTimeZone(); // Use the UTC-timezone here, don't correct for a specific timezone. // Don't use AddAsPeriod here, the 'nett' duration should be calculated here. start := dsStartDate.Date().Add( timezone, durStartTimeOfDay.Duration() ); end := dsEndDate .Date().Add( timezone, durEndTimeOfDay .Duration() ); duration := end - start; // When the duration is one or more full days, the time should not be shown. hideTime := LibCal_Event::USE_ONLY_DAYS() or ( duration.HourOfDay() = 0 and duration.MinuteOfHour() = 0 ); mask := ifexpr( hideTime, "", "h:m" ); if( abs( duration ) >= Duration::Days( 1 ) ) { mask := "d 'day" + ifexpr( abs( duration ) >= Duration::Days( 2 ), "s'", "'" ) + " " + mask; } valDuration.Text( duration.Format( mask ) ); } *] }