Пример #1
0
        /// <summary>
        /// Calculates the transfer.
        /// </summary>
        /// <param name="timetable">The timetable.</param>
        /// <param name="transfer">The transfer.</param>
        /// <returns></returns>
        public static int calculateTransfer(Timetable timetable, Transfer transfer)
        {
            // result rating value
            int ratingValue;

            TrainLineVariable onLine  = timetable.getVariableLineOnSelect(transfer.OnLine.LineNumber);
            TrainLineVariable offLine = timetable.getVariableLineOnSelect(transfer.OffLine.LineNumber);

            // varline startime, departure from start of line, connected line shif of line
            Time arrivalTime   = offLine.StartTime + offLine.arrivalToStopAtIndex(transfer.TrainStopIndexOffLine);
            Time departureTime = onLine.StartTime + onLine.departureFromStopAtIndex(transfer.TrainStopIndexOnLine);

            normalizeTransferTime(ref departureTime, ref arrivalTime, transfer.Station.MinimalTransferTime, (int)onLine.Period, (int)offLine.Period);
            ratingValue = transfer.evaluateTransferFunction(departureTime - arrivalTime);
            return(ratingValue);
        }