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