Quintiq file version 2.0 #parent: #root Method InitializeDuration () id:Method_LibCal_dlgEvent_InitializeDuration { #keys: '[131094.0.2033101498]' Body: [* sEvent := dhEvent.Data(); sParticipation := dhLeadingParticipation.Data(); 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 := sParticipation.StartDate().Add( timezone, sEvent.StartTimeOfDay() ); end := sParticipation.EndDate() .Add( timezone, sEvent.EndTimeOfDay() ); duration := Duration::Zero(); // Keep zero in case of negative duration (should not happen). if( end > start ) { duration := end - start; } // Update the DataHolder, which will update the labels that show the duration. dhDuration.Data( duration ); *] }