@golemio/pid
Version:
Golemio PID Module
26 lines • 1.27 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DepartureCalculator = void 0;
class DepartureCalculator {
/**
* Calculates the predicted departure time based on the scheduled departure time, arrival time and delay.
**/
static getPredictedDepartureTime(departureTime, arrivalTime, delayInSeconds) {
let delayInSecondsWithDefault = delayInSeconds ?? 0;
let adjustedDepartureTime = new Date(departureTime.getTime() + delayInSecondsWithDefault * 1000);
if (arrivalTime !== null && 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.
**/
static getDepartureMinutes(predictedDepartureTime) {
return Math.round((predictedDepartureTime.getTime() - Date.now()) / 60_000);
}
}
exports.DepartureCalculator = DepartureCalculator;
//# sourceMappingURL=DepartureCalculator.js.map