commit
af92fb96e0
@ -92,6 +92,10 @@ public class MakkahCity {
|
|||||||
for (Vehicle vehicle : listOfVehicles) {
|
for (Vehicle vehicle : listOfVehicles) {
|
||||||
vehicle.setCurrentStreet(null);
|
vehicle.setCurrentStreet(null);
|
||||||
}
|
}
|
||||||
|
Vehicle.resetMaxArrived();
|
||||||
|
Vehicle.resetMinArrived();
|
||||||
|
addCivilVehicleNoise();
|
||||||
|
|
||||||
System.out.println("***************STARTING LAST DAY***************");
|
System.out.println("***************STARTING LAST DAY***************");
|
||||||
while(!lastDayTimeMan.isEnded()) {
|
while(!lastDayTimeMan.isEnded()) {
|
||||||
checkInput();
|
checkInput();
|
||||||
@ -548,11 +552,20 @@ public class MakkahCity {
|
|||||||
s.append(String.format(fFormat,"Arafat",allArrivedToArafatTime)).append("\n");
|
s.append(String.format(fFormat,"Arafat",allArrivedToArafatTime)).append("\n");
|
||||||
if (arr && allArrivedToHotelsTime != null)
|
if (arr && allArrivedToHotelsTime != null)
|
||||||
s.append(String.format(fFormat,"Hotels",allArrivedToHotelsTime)).append("\n");
|
s.append(String.format(fFormat,"Hotels",allArrivedToHotelsTime)).append("\n");
|
||||||
s.append(String.format("Buses: %d, Buses done: %d\nBuses arrived in the last hour: %d, Average trip in last hour: %s\n",
|
s.append(String.format("Buses: %d, Buses done: %d %s\nBuses arrived in the last hour: %d, Average trip in last hour: %s\n",
|
||||||
numberOfBusses, numberOfArrivedBuses, getNumberOfArrivedBussesPerHour(), avgTimeOfTrip()));
|
numberOfBusses, numberOfArrivedBuses, minMaxRep() , getNumberOfArrivedBussesPerHour(), avgTimeOfTrip()));
|
||||||
return s.toString();
|
return s.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static String minMaxRep() {
|
||||||
|
StringBuilder report = new StringBuilder();
|
||||||
|
if (Vehicle.getMaxArrived() != null && Vehicle.getMinArrived() != null) {
|
||||||
|
report.append(String.format(" maximum trip %s", Vehicle.getMaxArrived().timeToString()));
|
||||||
|
report.append(String.format(" minimum trip %s", Vehicle.getMinArrived().timeToString()));
|
||||||
|
}
|
||||||
|
return report.toString();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Calculate average trip time for last 10 minutes
|
* Calculate average trip time for last 10 minutes
|
||||||
* @return "hh:mm"
|
* @return "hh:mm"
|
||||||
@ -617,7 +630,7 @@ public class MakkahCity {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
return num;
|
return num;
|
||||||
}
|
}//???
|
||||||
|
|
||||||
private static int getNumberOfArrivedBussesPerHour() {
|
private static int getNumberOfArrivedBussesPerHour() {
|
||||||
Calendar now = currenttimeManager.getCurrentCalendar();
|
Calendar now = currenttimeManager.getCurrentCalendar();
|
||||||
|
@ -13,6 +13,8 @@ public abstract class Vehicle {
|
|||||||
private Date timeStartedMoving;
|
private Date timeStartedMoving;
|
||||||
private Date timeOfArrival;
|
private Date timeOfArrival;
|
||||||
private Date timeStartedOnCurrentStreet;
|
private Date timeStartedOnCurrentStreet;
|
||||||
|
private static Vehicle max;
|
||||||
|
private static Vehicle min;
|
||||||
|
|
||||||
//Map Street to Minutes
|
//Map Street to Minutes
|
||||||
private HashMap<Street, Integer> routeTimeHistory = new HashMap<>();
|
private HashMap<Street, Integer> routeTimeHistory = new HashMap<>();
|
||||||
@ -38,8 +40,67 @@ public abstract class Vehicle {
|
|||||||
setTimeOfArrival(MakkahCity.getTimeMan().getCurrentTime());
|
setTimeOfArrival(MakkahCity.getTimeMan().getCurrentTime());
|
||||||
getCurrentStreet().getVehicles().remove(this);
|
getCurrentStreet().getVehicles().remove(this);
|
||||||
this.currentLocation = 0;
|
this.currentLocation = 0;
|
||||||
|
maxArrived();
|
||||||
|
minArrived();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void maxArrived() {
|
||||||
|
if (this instanceof Bus) {
|
||||||
|
if (max == null)
|
||||||
|
max = this;
|
||||||
|
else {
|
||||||
|
long thisMinutes = (getTimeOfArrival().getTime() - getTimeStartedMoving().getTime())/60000;
|
||||||
|
long maxMinutes = (max.getTimeOfArrival().getTime() - max.getTimeStartedMoving().getTime())/60000;
|
||||||
|
if (thisMinutes > maxMinutes)
|
||||||
|
max = this;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public void minArrived() {
|
||||||
|
if (this instanceof Bus) {
|
||||||
|
if (min == null)
|
||||||
|
min = this;
|
||||||
|
else {
|
||||||
|
long thisMinutes = (getTimeOfArrival().getTime() - getTimeStartedMoving().getTime())/60000;
|
||||||
|
long maxMinutes = (min.getTimeOfArrival().getTime() - min.getTimeStartedMoving().getTime())/60000;
|
||||||
|
if (thisMinutes < maxMinutes)
|
||||||
|
min = this;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public String timeToString() {
|
||||||
|
if (this == null)
|
||||||
|
return "null";
|
||||||
|
else {
|
||||||
|
long minutes = (getTimeOfArrival().getTime() - getTimeStartedMoving().getTime())/60000;
|
||||||
|
int hours =(int) minutes / 60;
|
||||||
|
minutes %= 60;
|
||||||
|
return String.format("%2d:%02d", hours,minutes);}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static Vehicle getMaxArrived() {
|
||||||
|
return max;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Vehicle getMinArrived() {
|
||||||
|
return min;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void resetMaxArrived() {
|
||||||
|
Vehicle.max = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void resetMinArrived() {
|
||||||
|
Vehicle.min = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public void move(double distance) {
|
public void move(double distance) {
|
||||||
if (!isMoving()) {
|
if (!isMoving()) {
|
||||||
setMoving(true);
|
setMoving(true);
|
||||||
|
Loading…
Reference in New Issue
Block a user