mirror of
https://gitlab.com/oeffi/public-transport-enabler.git
synced 2025-07-19 00:39:58 +00:00
fix connections spanning date rollover
git-svn-id: https://public-transport-enabler.googlecode.com/svn/trunk@215 0924bc21-9374-b0fa-ee44-9ff1593b38f0
This commit is contained in:
parent
7ffba4bb94
commit
63ae7c3507
1 changed files with 18 additions and 12 deletions
|
@ -388,6 +388,8 @@ public class RmvProvider implements NetworkProvider
|
||||||
final Date currentDate = ParserUtils.parseDate(mHead.group(2));
|
final Date currentDate = ParserUtils.parseDate(mHead.group(2));
|
||||||
final List<Connection.Part> parts = new ArrayList<Connection.Part>(4);
|
final List<Connection.Part> parts = new ArrayList<Connection.Part>(4);
|
||||||
|
|
||||||
|
Date lastTime = currentDate;
|
||||||
|
|
||||||
Date firstDepartureTime = null;
|
Date firstDepartureTime = null;
|
||||||
Date lastArrivalTime = null;
|
Date lastArrivalTime = null;
|
||||||
String lastArrival = null;
|
String lastArrival = null;
|
||||||
|
@ -411,28 +413,22 @@ public class RmvProvider implements NetworkProvider
|
||||||
|
|
||||||
final String destination = ParserUtils.resolveEntities(mDetFine.group(2));
|
final String destination = ParserUtils.resolveEntities(mDetFine.group(2));
|
||||||
|
|
||||||
final Date departureTime = ParserUtils.parseTime(mDetFine.group(3));
|
final Date departureTime = upTime(lastTime, ParserUtils.joinDateTime(currentDate, ParserUtils.parseTime(mDetFine.group(3))));
|
||||||
|
|
||||||
final String departurePosition = ParserUtils.resolveEntities(mDetFine.group(4));
|
final String departurePosition = ParserUtils.resolveEntities(mDetFine.group(4));
|
||||||
|
|
||||||
// final Date departureDate = ParserUtils.parseDate(mDet.group(5));
|
final Date arrivalTime = upTime(lastTime, ParserUtils.joinDateTime(currentDate, ParserUtils.parseTime(mDetFine.group(5))));
|
||||||
|
|
||||||
final Date arrivalTime = ParserUtils.parseTime(mDetFine.group(5));
|
|
||||||
|
|
||||||
final String arrivalPosition = ParserUtils.resolveEntities(mDetFine.group(6));
|
final String arrivalPosition = ParserUtils.resolveEntities(mDetFine.group(6));
|
||||||
|
|
||||||
// final Date arrivalDate = ParserUtils.parseDate(mDet.group(9));
|
lastTrip = new Connection.Trip(line, line != null ? LINES.get(line.charAt(0)) : null, destination, departureTime,
|
||||||
|
departurePosition, 0, departure, arrivalTime, arrivalPosition, 0, arrival);
|
||||||
final Date departureDateTime = ParserUtils.joinDateTime(currentDate, departureTime);
|
|
||||||
final Date arrivalDateTime = ParserUtils.joinDateTime(currentDate, arrivalTime);
|
|
||||||
lastTrip = new Connection.Trip(line, line != null ? LINES.get(line.charAt(0)) : null, destination, departureDateTime,
|
|
||||||
departurePosition, 0, departure, arrivalDateTime, arrivalPosition, 0, arrival);
|
|
||||||
parts.add(lastTrip);
|
parts.add(lastTrip);
|
||||||
|
|
||||||
if (firstDepartureTime == null)
|
if (firstDepartureTime == null)
|
||||||
firstDepartureTime = departureDateTime;
|
firstDepartureTime = departureTime;
|
||||||
|
|
||||||
lastArrivalTime = arrivalDateTime;
|
lastArrivalTime = arrivalTime;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -462,6 +458,16 @@ public class RmvProvider implements NetworkProvider
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static Date upTime(final Date lastTime, Date time)
|
||||||
|
{
|
||||||
|
while (time.before(lastTime))
|
||||||
|
time = ParserUtils.addDays(time, 1);
|
||||||
|
|
||||||
|
lastTime.setTime(time.getTime());
|
||||||
|
|
||||||
|
return time;
|
||||||
|
}
|
||||||
|
|
||||||
public String departuresQueryUri(final String stationId, final int maxDepartures)
|
public String departuresQueryUri(final String stationId, final int maxDepartures)
|
||||||
{
|
{
|
||||||
final DateFormat DATE_FORMAT = new SimpleDateFormat("dd.MM.yy");
|
final DateFormat DATE_FORMAT = new SimpleDateFormat("dd.MM.yy");
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue