aktueller Stand

This commit is contained in:
Flummi 2025-01-30 13:31:56 +01:00
parent b363690c19
commit 791fe54411
2 changed files with 38 additions and 23 deletions

View File

@ -6,18 +6,19 @@ import java.io.FileNotFoundException;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.net.HttpURLConnection; import java.net.HttpURLConnection;
import java.net.URL; import java.net.URL;
import java.net.URLEncoder;
import java.net.URI; import java.net.URI;
import java.util.Scanner; import java.util.Scanner;
public class WetterAPI { public class WetterAPI {
private static final String API(String mode, String ort) { private static final String API(String mode, String ort) throws Exception {
return new StringBuilder() return new StringBuilder()
.append("https://api.openweathermap.org/data/2.5/") .append("https://api.openweathermap.org/data/2.5/")
.append(mode) .append(mode)
.append("?units=metric&lang=de&appid=") .append("?units=metric&lang=de&appid=")
.append(readApiKey("env.txt")) .append(readApiKey("env.txt"))
.append("&q=") .append("&q=")
.append(ort) .append(URLEncoder.encode(ort, "UTF-8"))
.toString(); .toString();
}; };
@ -37,7 +38,7 @@ public class WetterAPI {
int responseCode = connection.getResponseCode(); int responseCode = connection.getResponseCode();
if(responseCode != 200) { if(responseCode != 200) {
throw new Exception("Fehler bei der Anfrage: " + responseCode); throw new Exception("Dieser Ort wurde nicht gefunden.");
} }
try(BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()))) { try(BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()))) {

View File

@ -17,6 +17,10 @@ public class WetterApp {
} }
public void start() { public void start() {
this.clearScreen();
while(true) {
System.out.println();
System.out.println("Wetter Schmetter"); System.out.println("Wetter Schmetter");
System.out.println("---------"); System.out.println("---------");
System.out.println("1. Aktuelles Wetter"); System.out.println("1. Aktuelles Wetter");
@ -24,6 +28,7 @@ public class WetterApp {
System.out.println("3. Beenden"); System.out.println("3. Beenden");
int auswahl = this.readInputInt(); int auswahl = this.readInputInt();
this.clearScreen();
switch(auswahl) { switch(auswahl) {
case 1: case 1:
@ -34,11 +39,14 @@ public class WetterApp {
break; break;
case 3: case 3:
System.out.println("Beenden..."); System.out.println("Beenden...");
scanner.close();
System.exit(0);
break; break;
default: default:
System.out.println("Ungültige Eingabe"); System.out.println("Ungültige Eingabe");
} }
} }
}
private void getAktuellesWetter() { private void getAktuellesWetter() {
System.out.println("Geben Sie einen Ort ein:"); System.out.println("Geben Sie einen Ort ein:");
@ -76,16 +84,18 @@ public class WetterApp {
} }
private void printWetterDaten(WetterDaten wetterDaten) { private void printWetterDaten(WetterDaten wetterDaten) {
System.out.println();
System.out.println("Wetter in " + wetterDaten.getOrt()); System.out.println("Wetter in " + wetterDaten.getOrt());
System.out.println("Temperatur: " + wetterDaten.getTemperatur() + " °C"); System.out.println("Temperatur: " + wetterDaten.getTemperatur() + " °C");
System.out.println("Luftdruck: " + wetterDaten.getLuftdruck() + " hPa"); System.out.println("Luftdruck: " + wetterDaten.getLuftdruck() + " hPa");
System.out.println("Luftfeuchtigkeit: " + wetterDaten.getLuftfeuchtigkeit() + " %"); System.out.println("Luftfeuchtigkeit: " + wetterDaten.getLuftfeuchtigkeit() + " %");
scanner.close(); System.out.println();
} }
private void printWetterVorhersage(String json) { private void printWetterVorhersage(String json) {
JSONObject jsonObject = new JSONObject(json); JSONObject jsonObject = new JSONObject(json);
JSONArray forecastArray = jsonObject.getJSONArray("list"); JSONArray forecastArray = jsonObject.getJSONArray("list");
System.out.println();
for(int i = 0; i < forecastArray.length(); i += 8) { for(int i = 0; i < forecastArray.length(); i += 8) {
JSONObject forecastObject = forecastArray.getJSONObject(i); JSONObject forecastObject = forecastArray.getJSONObject(i);
@ -98,7 +108,6 @@ public class WetterApp {
System.out.println("Luftdruck: " + luftdruck + " hPa"); System.out.println("Luftdruck: " + luftdruck + " hPa");
System.out.println(); System.out.println();
} }
scanner.close();
} }
private String readInput() { private String readInput() {
@ -110,4 +119,9 @@ public class WetterApp {
scanner.nextLine(); scanner.nextLine();
return ret; return ret;
} }
private void clearScreen() {
System.out.print("\033[H\033[2J");
System.out.flush();
}
} }