mirror of
https://gitlab.com/oeffi/public-transport-enabler.git
synced 2025-07-17 16:09:52 +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 List<Connection.Part> parts = new ArrayList<Connection.Part>(4);
|
||||
|
||||
Date lastTime = currentDate;
|
||||
|
||||
Date firstDepartureTime = null;
|
||||
Date lastArrivalTime = null;
|
||||
String lastArrival = null;
|
||||
|
@ -411,28 +413,22 @@ public class RmvProvider implements NetworkProvider
|
|||
|
||||
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 Date departureDate = ParserUtils.parseDate(mDet.group(5));
|
||||
|
||||
final Date arrivalTime = ParserUtils.parseTime(mDetFine.group(5));
|
||||
final Date arrivalTime = upTime(lastTime, ParserUtils.joinDateTime(currentDate, ParserUtils.parseTime(mDetFine.group(5))));
|
||||
|
||||
final String arrivalPosition = ParserUtils.resolveEntities(mDetFine.group(6));
|
||||
|
||||
// final Date arrivalDate = ParserUtils.parseDate(mDet.group(9));
|
||||
|
||||
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);
|
||||
lastTrip = new Connection.Trip(line, line != null ? LINES.get(line.charAt(0)) : null, destination, departureTime,
|
||||
departurePosition, 0, departure, arrivalTime, arrivalPosition, 0, arrival);
|
||||
parts.add(lastTrip);
|
||||
|
||||
if (firstDepartureTime == null)
|
||||
firstDepartureTime = departureDateTime;
|
||||
firstDepartureTime = departureTime;
|
||||
|
||||
lastArrivalTime = arrivalDateTime;
|
||||
lastArrivalTime = arrivalTime;
|
||||
}
|
||||
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)
|
||||
{
|
||||
final DateFormat DATE_FORMAT = new SimpleDateFormat("dd.MM.yy");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue