@golemio/pid
Version:
Golemio PID Module
26 lines • 1.24 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DepartureCalculator = void 0;
class DepartureCalculator {
}
exports.DepartureCalculator = DepartureCalculator;
/**
* Calculates the predicted departure time based on the scheduled departure time, arrival time and delay.
**/
DepartureCalculator.getPredictedDepartureTime = (departureTime, arrivalTime, delayInSeconds) => {
let delayInSecondsWithDefault = delayInSeconds ?? 0;
let adjustedDepartureTime = new Date(departureTime.getTime() + delayInSecondsWithDefault * 1000);
if (arrivalTime && delayInSecondsWithDefault > 0) {
const dwellInSeconds = (departureTime.getTime() - arrivalTime.getTime()) / 1000;
const minDwellInSeconds = Math.min(delayInSecondsWithDefault, dwellInSeconds);
adjustedDepartureTime.setTime(adjustedDepartureTime.getTime() - minDwellInSeconds * 1000);
}
return adjustedDepartureTime;
};
/**
* Calculates the number of minutes until the predicted departure time.
**/
DepartureCalculator.getDepartureMinutes = (predictedDepartureTime) => {
return Math.round((predictedDepartureTime.getTime() - new Date().getTime()) / (60 * 1000));
};
//# sourceMappingURL=DepartureCalculator.js.map