J'essaie d'ajouter un délai à un TrainTimeTable
. J'ai effectué les arrivées et les départs des trains en utilisant Date
objets. Lorsque j'imprime l'horaire pour la première fois, tout indique les heures d'arrivée et de départ correctes. Cependant, après avoir ajouté un retard de 30 minutes à toutes les stations Edmonton et suivantes, certaines heures d'arrivée et de départ deviennent incorrectes. Certaines heures d'arrivée et de départ deviennent incorrectes. Le retard ne devrait que repousser les heures d'arrivée et de départ, mais il modifie la durée du trajet entre certaines villes.
J'ai conçu mes getters et setters de la manière suivante :
/**
* Accessor for arrival Date variable. Returns a copy of the arrival date.
* @return - a copy of the arrival date
*/
public Date getArrivalDate()
{
//return a copy of the original date
return (Date) arrival.clone();
}
/**
* Mutator for arrival date variable.
* @param arrival - the date to set
*/
public void setArrivalDate( Date arrival )
{
//uses copy of Date passed in
this.arrival = (Date) arrival.clone();
}
Voici ma méthode pour ajouter le délai J'utilise un LinkedList
de Station
des objets pour tenir le calendrier :
public void delay(String Station, int minute) {
//sequential search for Station
//iterate through list for Station
boolean delayPoint = false;
//1 ) adjust time of day
//add delay to arrival and departure date objects
for (Station current : schedule) {
//By checking for delay before checking for the delay city
//we will see the delayPoint variable set while on
//the loop is at the station right afer the delayed Station
//if after the delay point
if (delayPoint) {
//then add delay to arrive date
Date arrivalDate = current.getArrivalDate();
long arrivalTime = current.getArrivalDate().getTime();
arrivalTime += minute * MIN_TO_MS;
arrivalDate.setTime(arrivalTime);
current.setArrivalDate(arrivalDate);
//and add delay to depart date
Date departDate = current.getDepartureDate();
long departTime = current.getDepartureDate().getTime();
departTime += minute * MIN_TO_MS;
departDate.setTime(departTime);
current.setDepartureDate(departDate);
} //if the Station matches the point of delay
else if (current.getCity().equals(Station)) {
//then set the boolean
delayPoint = true;
//and add delay to departure
Date departDate = current.getDepartureDate();
long departTime = current.getDepartureDate().getTime();
departTime += minute * MIN_TO_MS;
departDate.setTime(departTime);
current.setDepartureDate(departDate);
}
}
//2 ) adjust day of trip
}
Voici mon résultat après avoir ajouté un délai de 30 minutes au départ d'Edmonton
S'il vous plaît et merci,
Ahsen Husain.