function calculateArrivalTime()

in dialogflow-prebuilt-agents/client_side_messenger/airline_support/airline_support.js [254:284]


  function calculateArrivalTime(
      departureTime, duration, timezoneDifferenceMinutes) {
    const [hours, minutes] = departureTime.split(':').map(Number);
  
    // Convert duration to hours and minutes
    const durationHours = Math.floor(duration / 60);
    const durationMinutes = duration % 60;
  
    // Calculate initial arrival time in origin time
    let arrivalHours = hours + durationHours;
    let arrivalMinutes = minutes + durationMinutes;
  
    // Adjust arrival time based on time offsets
    arrivalMinutes += timezoneDifferenceMinutes;
  
    // Handle minutes exceeding 60 or going below 0
    while (arrivalMinutes >= 60) {
      arrivalHours += 1;
      arrivalMinutes -= 60;
    }
    while (arrivalMinutes < 0) {
      arrivalHours -= 1;
      arrivalMinutes += 60;
    }
  
    // Handle hours exceeding 24
    arrivalHours %= 24;
  
    return `${arrivalHours.toString().padStart(2, '0')}:${
        arrivalMinutes.toString().padStart(2, '0')}`;
  }