Quintiq file version 2.0
#parent: #root
Method UpdateDuration () id:Method_LibCal_dlgEditTimeInterval_UpdateDuration
{
  #keys: '[131094.0.1401995763]'
  Body:
  [*
    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    := datStartDate.Date().Add( timezone, durStartTimeOfDay.Duration() );
    end      := datEndDate  .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" );
    indent := ifexpr( duration < Duration::Hours( 10 ), "    ", "  " );
    
    if( abs( duration ) >= Duration::Days( 1 ) )
    {
      mask := "d 'day" + ifexpr( abs( duration ) >= Duration::Days( 2 ), "s'", "'" ) + "  " + mask;
    }
    
    valDuration.Text( indent + duration.Format( mask ) );
  *]
}
