public static void printReservationLengthReport(AirbnbReservationCollection anAirbnbReservationCollection) {
		System.out.println("---------------------------------");
		System.out.println("Reservation Length Summary Report");
		System.out.println("---------------------------------\n");
		
		int startYear = AirbnbGlobals.STARTYEAR;
		int endYear = AirbnbGlobals.ENDYEAR;
		int yearCount = endYear-startYear+1;
		int listingCount = anAirbnbReservationCollection.getListingNames().size();
		int maxReservationLength = AirbnbGlobals.MAXRESERVATIONLENGTH;
		float grandTotAllRevenues = 0;
		
		ArrayList<AirbnbReservation> reservations = anAirbnbReservationCollection.getAirbnbReservationList();
		int[][][] reservationLengthsArray = new int[yearCount][listingCount+1][maxReservationLength];
		float[][][] reservationRevenuesArray = new float[yearCount][listingCount+1][maxReservationLength];
		
		for(Iterator<AirbnbReservation> i = reservations.iterator(); i.hasNext(); ) {
			AirbnbReservation res = i.next();
			int listingIdx = anAirbnbReservationCollection.getListingNames().indexOf(res.getListingName());
			int yearIdx = res.getCheckInDate().getYear()-startYear;
			int resLength = res.getNumberOfNights();
			reservationLengthsArray[yearIdx][listingIdx][resLength]++;
			reservationLengthsArray[yearIdx][listingCount][resLength]++;					// running total
			reservationRevenuesArray[yearIdx][listingIdx][resLength]+=res.getAmount();
			reservationRevenuesArray[yearIdx][listingCount][resLength]+=res.getAmount();	// running total
			grandTotAllRevenues+=res.getAmount();
		}
		
		for(int i=0; i < listingCount; i++) {
			System.out.println(anAirbnbReservationCollection.getListingNames().get(i));
			for(int y=0; y < yearCount; y++) {
				System.out.println(startYear+y);
				for(int z=0; z < maxReservationLength; z++) {
					int cnt = reservationLengthsArray[y][i][z];
					float revenue = reservationRevenuesArray[y][i][z];
					
					if (cnt > 0) {
						int revenuePercentage = (int) ((revenue / grandTotAllRevenues) * 100 + .5);
						System.out.printf("%5d x %5d night reservation(s)   $%5.2f \n",cnt,z,revenue);
						//System.out.printf("%5d x %5d night reservation(s)   $%5.2f\n",cnt,zrevenue);
					}
					
				}
			}
		}

		System.out.println("\n\nSummary : ");
		float[] revenuePercentages = new float[maxReservationLength];
				
		for (int z=0; z < maxReservationLength; z++) {
			int resCountTotal = 0;
			float revenueTotal = 0;
			
			for(int y=0; y < yearCount; y++) {
				resCountTotal += reservationLengthsArray[y][listingCount][z];
				revenueTotal +=  reservationRevenuesArray[y][listingCount][z];
			}
			
			if (resCountTotal > 0) {
				int revenuePercentage = (int) ((revenueTotal/grandTotAllRevenues) * 100 + .5);
				float profit = revenueTotal - (float)(resCountTotal * 20);
				System.out.printf("%5d x %5d night reservation(s)   $%5.2f%8.2f %5d%%\n",resCountTotal,z,revenueTotal,profit,revenuePercentage);
			}
		}
	}