| Quintiq file version 2.0 | 
| #parent: #root | 
| Method SetEnd ( | 
|   Date endDate_i, | 
|   Duration endTimeOfDay_i | 
| ) as LibCal_Event | 
| { | 
|   Description: 'Set the end of the event.' | 
|   TextBody: | 
|   [* | 
|     // Ignore seconds. | 
|     endTimeOfDay := endTimeOfDay_i.Round( Duration::Minutes( 1 ) ); | 
|      | 
|     // Use a FeedbackObject the collect the validation feedback. | 
|     feedback := LibCal_Validate::FeedbackObject(); | 
|      | 
|     moreInfo := this.GetEventInfo() + ", EndTimeOfDay = " + endTimeOfDay.Format( Translations::DurationFormat() ); | 
|     LibCal_Validate::RegisterError( LibCal_Validate::Event_EndTimeOfDay( endTimeOfDay ), moreInfo ); | 
|      | 
|     // Process the feedback that has been registered by the validation (if any). | 
|     LibCal_Util::ProcessFeedbackObject( feedback ); | 
|      | 
|     // The below is only executed when no validation errors were encountered. | 
|     if( not isnull( this.LeadingParticipation() ) ) | 
|     { | 
|       // Set the End by setting the Duration. | 
|       // Timezone and Daylight Saving should NOT be taken into account here. | 
|       timezone  := TimeZone::UTCTimeZone(); | 
|       startTime := this.LeadingParticipation().StartDate().Add( timezone, this.StartTimeOfDay() ); | 
|       endTime   := endDate_i.Add( timezone, endTimeOfDay_i ); | 
|       duration  := endTime - startTime; | 
|        | 
|       this.SetDuration( duration ); | 
|     } | 
|      | 
|     // Make the API fluent. | 
|     return this; | 
|   *] | 
| } |