C# :: Aufgabe #78 :: Lösung #1

3 Lösungen Lösungen öffentlich
#78

Wetterdaten abfragen und anzeigen

Anfänger - C# von pocki - 27.11.2014 um 19:00 Uhr
Schreibe ein Programm, welches Wetterdaten von einem Dienst abruft und einige Werte davon ausgibt.
Das Programm soll durch die Benutzereingabe die Stadt entgegen nehmen und zu dieser die aktuellen Wetterdaten ausgeben.

Vorschlag für einen einfachen und kostenlosen Dienst: openweathermap.org
#1
vote_ok
von Mexx (2370 Punkte) - 14.01.2015 um 14:38 Uhr
Hier als einfache Konsolenanwendung, die sich auf die aktuellen Daten beschränkt...

Quellcode ausblenden C#-Code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Xml;
using System.Xml.Linq;
using System.IO;

namespace WetterChecker
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Geben Sie den Stadtnamen und das Länderkürzel ein (bsp. \"Berlin, de\")");
            string eingabe = Console.ReadLine();
            string[] parameter = eingabe.Split(',');
            string url = @"http://api.openweathermap.org/data/2.5/forecast?q=" + parameter[0].Trim() + "," + parameter[1].Trim() + "&mode=xml";

            try
            {
                XElement root = XElement.Load(url, LoadOptions.PreserveWhitespace);

                if (root != null)
                {
                    XElement location = root.Element("location");
                    XElement stadt = location.Element("name");
                    XElement land = location.Element("country");

                    XAttribute sonnenaufgang = root.Element("sun").Attribute("rise");
                    XAttribute sonnenuntergang = root.Element("sun").Attribute("set");
                    DateTime datum = DateTime.Parse((string)sonnenaufgang);
                    DateTime datum2 = DateTime.Parse((string)sonnenuntergang);

                    XElement vorhersage = root.Element("forecast");
                    XElement aktuell = vorhersage.FirstNode.NextNode as XElement;

                    XElement wind = vorhersage.Element("time").Element("windDirection");
                    XElement temperatur = vorhersage.Element("time").Element("temperature");
                    XElement luftdruck = vorhersage.Element("time").Element("pressure");
                    XElement luftfeuchtigkeit = vorhersage.Element("time").Element("humidity");
                    XElement wolken = vorhersage.Element("time").Element("clouds");


                    Console.WriteLine("\nStadt: " + (string)stadt + "\nLand: " + (string)land + "\n\nDatum: " + datum.ToShortDateString() + "\nSonnenaufgang: " + datum.AddHours(1).ToShortTimeString() +
                                      " Uhr \nSonnenuntergang: " + datum2.AddHours(1).ToShortTimeString() + " Uhr \nWindrichtung: " + (string)wind.Attribute("name") + "\nTemperatur: " +
                                      (string)temperatur.Attribute("value") + "° " + (string)temperatur.Attribute("unit") + "\nLuftdruck: " + (string)luftdruck.Attribute("value") + " " +
                                      (string)luftdruck.Attribute("unit") + "\nLuftfeuchtigkeit: " + (string)luftfeuchtigkeit.Attribute("value") + (string)luftfeuchtigkeit.Attribute("unit") +
                                      "\nWetter: " + (string)wolken.Attribute("value") + "\nRegenwahrscheinlichkeit: " + (string)wolken.Attribute("all") + (string)wolken.Attribute("unit"));
                }
                else
                {
                    Console.WriteLine("Zu Ihren Angaben wurden keine Wetterdaten gefunden \n\n");
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            Console.ReadKey();
        }
    }
}

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben
1954127

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.