| Quintiq file version 2.0 | 
| #parent: #root | 
| StaticMethod CalculateEndTime ( | 
|   TimeZone timezone_i, | 
|   Date startDate_i, | 
|   Duration startTimeOfDay_i, | 
|   Duration duration_i | 
| ) const declarative remote as DateTime | 
| { | 
|   Description: | 
|   [* | 
|     Calculate the EndTime based on the provided Timezone, StartDate, StartTimeOfDay and Duration. | 
|     Daylight Saving Time (DST) is taken into account when applicable. | 
|   *] | 
|   TextBody: | 
|   [* | 
|     // Calculate the number of days between start and end, and the EndTimeOfDay. | 
|     nrOfDays     := ( startTimeOfDay_i + duration_i ) div Duration::Hours( 24 ); | 
|     endTimeOfDay := ( startTimeOfDay_i + duration_i ) mod Duration::Hours( 24 ); | 
|      | 
|     // Use AddAsPeriod() to take Daylight Saving Time into account. | 
|     endTime := ( startDate_i + nrOfDays ).DateTime( timezone_i ).AddAsPeriod( timezone_i, endTimeOfDay ); | 
|      | 
|     return endTime; | 
|   *] | 
|   InterfaceProperties { Accessibility: 'Module' } | 
| } |