public String[] getForecastTimes() throws Exception {
		String[] times = new String[8];
		try {
			layers++;
			BufferedReader br = new BufferedReader(new InputStreamReader(
					new URL(MakeURL.hourlyURL(zip, plusDays)).openStream()));

			// FileWriter fileWriter = new FileWriter("test.html", false);
			// PrintWriter out = new PrintWriter(fileWriter, true);
			// out.println(MakeURL.hourlyURL(zip, plusDays) + " times");

			int numHours = 0;

			String line = "";
			line = br.readLine();
			// out.println(line);
			int index = 0;
			int i = 0;

			boolean prevLineWasHour = false;

			// FileWriter fileWriter;
			// PrintWriter out;
			// fileWriter = new FileWriter("whours.html", false);
			// out = new PrintWriter(fileWriter, true);

			while (true) {
				times[i] = "";
				// out.println(line);
				if (line.contains("<th class=\"taC\">")) {
					prevLineWasHour = true;
					index = line.indexOf("<th class=\"taC\">") + 16;
					while (Character.isDigit(line.charAt(index))) {
						times[i] = times[i] + line.charAt(index);
						index++;
					}
					i++;
					if (i > 7) {
						break;
					}
				} else if (prevLineWasHour) {
					numHours = i;
					// valid = true;
					break;
				} else if (line.contains("<h1>There has been an error!</h1>")) {
					numHours = 0;
					// valid = false;
					break;
				}
				line = br.readLine();
				// out.println(line);
			}

			numHours = i;

			wundergroundHours = numHours;
			String[] ret = new String[numHours];
			for (int j = 0; j < numHours; j++) {
				ret[j] = times[j];
			}
			wundergroundTimes = ret;

			// out.close();
			// fileWriter.close();

			layers = 0;
			return ret;
		} catch (Exception e) {
			if (layers > 5) {
				// valid = false;
				return times;
			} else {
				Thread.sleep(2000);
				return getHourlyForecastTemps();
			}
		}

	}