diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 0000000..9e26dfe
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1 @@
+{}
\ No newline at end of file
diff --git a/src/App.js b/src/App.js
index 08f35e3..0ff4bad 100644
--- a/src/App.js
+++ b/src/App.js
@@ -1,19 +1,57 @@
import "./App.scss";
+import React, { useState } from "react";
import Header from "./components/Header/Header";
import Footer from "./components/Footer/Footer";
-import Icon from './components/Icon/Icon';
+import CurrentWeather from "./components/CurrentWeather/CurrentWeather";
+import FutureWeather from "./components/FutureWeather/FutureWeather";
+
-//configs
const siteTitle = process.env.REACT_APP_SITE_TITLE ?? "CYF Weather";
function App() {
+ const [weatherData, setWeatherData] = useState([]);
+
+ function getNewWeather(city) {
+ fetch(
+ `https://api.openweathermap.org/data/2.5/forecast?q=${city}&units=metric&appid=3b86046cce0de3be7cfa8369f4540b37`
+ )
+ .then((res) => res.json())
+ .then((data) => {
+ setWeatherData(data);
+ });
+ }
+
return (
-
+
+
-
-
+
+
+
+ {weatherData?.list?.splice(0, 7)?.map((future) => (
+
+ ))}
+
+
);
diff --git a/src/App.scss b/src/App.scss
index ede0d3f..90ac4ff 100644
--- a/src/App.scss
+++ b/src/App.scss
@@ -1,2 +1,89 @@
@use "theme/utilities.scss";
@use "theme/global.scss";
+
+
+.App{
+ background-color: #8ecae6;
+}
+
+.c-site-header{
+ padding: 20px;
+}
+
+.heading{
+ background-color: #219ebc;
+ padding: 10px;
+}
+
+.c-site-header__title{
+ color: #023047;
+ padding: 20px;
+}
+
+.city{
+ margin: 15px;
+ padding: 15px;
+}
+
+.search-btn{
+ background-color: #023047;
+ color: white;
+ margin-left: 15px;
+ padding: 15px;
+}
+
+// ----------current weather----------
+.current{
+ text-align: center;
+}
+
+.current-icon{
+ margin: auto;
+ width: 300px;
+ height: 300px;
+ object-fit: cover;
+}
+
+.description{
+ color: white;
+}
+
+.temp {
+ margin: 20px;
+}
+
+.current-container{
+ display: flex;
+ justify-content: center;
+}
+
+.humid-press{
+ padding: 30px;
+}
+
+
+// -----------future weather------
+.future{
+ margin-top: 50px;
+ text-align: center;
+}
+
+.container {
+ display: inline-grid;
+ grid-template-columns: repeat(100px, 1fr);
+ grid-gap: 10px;
+ text-align: center;
+}
+
+.items{
+ // border: 1px solid #ccc;
+ text-align: center;
+ padding: 10px;
+}
+
+.future-icon {
+ margin: auto;
+ width: 150px;
+ height: 150px;
+ object-fit: cover;
+}
diff --git a/src/components/CurrentWeather/CurrentWeather.jsx b/src/components/CurrentWeather/CurrentWeather.jsx
new file mode 100644
index 0000000..1652802
--- /dev/null
+++ b/src/components/CurrentWeather/CurrentWeather.jsx
@@ -0,0 +1,25 @@
+import React from 'react'
+import WeatherIcon from '../Picture/WeatherIcon';
+
+
+function CurrentWeather({ weatherId, description, temp_min, temp_max, humidity, pressure }) {
+ return (
+ <>
+
+
+
+
+ {description}
+
+ Temperature : {temp_min}° to {temp_max}°C
+
+
+
+
Humidity : {humidity}%
+ Pressure : {pressure}
+
+ >
+ );
+}
+
+export default CurrentWeather
\ No newline at end of file
diff --git a/src/components/FutureWeather/FutureWeather.jsx b/src/components/FutureWeather/FutureWeather.jsx
new file mode 100644
index 0000000..f002624
--- /dev/null
+++ b/src/components/FutureWeather/FutureWeather.jsx
@@ -0,0 +1,21 @@
+import React from "react";
+import WeatherIcon from "../Picture/WeatherIcon";
+
+
+ function FutureWeather({ time, iconId, temp }) {
+ const formattedTime = time.split(" ")[1].slice(0,5)
+
+ return (
+
+
+
{formattedTime}
+
+
+
+
{temp}°C
+
+
+ );
+}
+export default FutureWeather;
+
diff --git a/src/components/Header/Header.jsx b/src/components/Header/Header.jsx
index f9a09c0..0eb72cb 100644
--- a/src/components/Header/Header.jsx
+++ b/src/components/Header/Header.jsx
@@ -1,11 +1,27 @@
-import React from "react";
-import './Header.scss'
+import "./Header.scss";
+import React, { useState } from "react";
-const Header = ({title}) =>
+const Header = ({ title, getNewWeather }) => {
+ const [city, setCity] = useState("");
+
+ return (
+ );
+};
-
-export default Header;
\ No newline at end of file
+export default Header;
diff --git a/src/components/Icon/Icon.jsx b/src/components/Icon/Icon.jsx
index e84abed..18ad915 100644
--- a/src/components/Icon/Icon.jsx
+++ b/src/components/Icon/Icon.jsx
@@ -1,37 +1,37 @@
-import React from 'react'
-import clear from '../../img/weather-icons/clear.svg'
-import cloudy from '../../img/weather-icons/cloudy.svg'
-import drizzle from '../../img/weather-icons/drizzle.svg'
-import fog from '../../img/weather-icons/fog.svg'
-import mostlycloudy from '../../img/weather-icons/mostlycloudy.svg'
-import partlycloudy from '../../img/weather-icons/partlycloudy.svg'
-import rain from '../../img/weather-icons/rain.svg'
-import snow from '../../img/weather-icons/snow.svg'
-import storm from '../../img/weather-icons/storm.svg'
-import unknown from '../../img/weather-icons/unknown.svg'
+import React from "react";
+import clear from "../../img/weather-icons/clear.svg";
+import cloudy from "../../img/weather-icons/cloudy.svg";
+import drizzle from "../../img/weather-icons/drizzle.svg";
+import fog from "../../img/weather-icons/fog.svg";
+import mostlycloudy from "../../img/weather-icons/mostlycloudy.svg";
+import partlycloudy from "../../img/weather-icons/partlycloudy.svg";
+import rain from "../../img/weather-icons/rain.svg";
+import snow from "../../img/weather-icons/snow.svg";
+import storm from "../../img/weather-icons/storm.svg";
+import unknown from "../../img/weather-icons/unknown.svg";
function Icon({ name }) {
- if (name === 'clear') {
- return
- } else if (name === 'cloudy') {
- return
- } else if (name === 'drizzle') {
- return
- } else if (name === 'fog') {
- return
- } else if (name === 'mostlycloudy') {
- return
- } else if (name === 'partlycloudy') {
- return
- } else if (name === 'rain') {
- return
- } else if (name === 'snow') {
- return
- } else if (name === 'storm') {
- return
+ if (name === "clear") {
+ return ;
+ } else if (name === "cloudy") {
+ return ;
+ } else if (name === "drizzle") {
+ return ;
+ } else if (name === "fog") {
+ return ;
+ } else if (name === "mostlycloudy") {
+ return ;
+ } else if (name === "partlycloudy") {
+ return ;
+ } else if (name === "rain") {
+ return ;
+ } else if (name === "snow") {
+ return ;
+ } else if (name === "storm") {
+ return ;
} else {
- return
+ return ;
}
}
-export default Icon
+export default Icon;
diff --git a/src/components/Picture/WeatherIcon.jsx b/src/components/Picture/WeatherIcon.jsx
new file mode 100644
index 0000000..b766d77
--- /dev/null
+++ b/src/components/Picture/WeatherIcon.jsx
@@ -0,0 +1,55 @@
+import React from "react";
+import storm from "../../img/weather-icons/storm.svg";
+import drizzle from "../../img/weather-icons/drizzle.svg";
+import rain from "../../img/weather-icons/rain.svg";
+import snow from "../../img/weather-icons/snow.svg";
+import fog from "../../img/weather-icons/fog.svg";
+import clear from "../../img/weather-icons/clear.svg";
+import partlyCloudy from "../../img/weather-icons/partlycloudy.svg";
+import mostlyCloudy from "../../img/weather-icons/mostlycloudy.svg";
+import unknown from "../../img/weather-icons/unknown.svg";
+
+const images = {
+ storm: { src: storm, alt: "storm" },
+ drizzle: { src: drizzle, alt: "drizzle" },
+ rain: { src: rain, alt: "rain" },
+ snow: { src: snow, alt: "snow" },
+ fog: { src: fog, alt: "fog" },
+ clear: { src: clear, alt: "clear" },
+ partlyCloudy: { src: partlyCloudy, alt: "partly cloudy" },
+ mostlyCloudy: { src: mostlyCloudy, alt: "mostly cloudy" },
+ unknown: { src: unknown, alt: "unknown" },
+};
+
+function selectImage(weatherId) {
+ if (weatherId < 300) {
+ return images.storm;
+ } else if (weatherId < 499) {
+ return images.drizzle;
+ } else if (weatherId < 599) {
+ return images.rain;
+ } else if (weatherId < 699) {
+ return images.snow;
+ } else if (weatherId < 799) {
+ return images.fog;
+ } else if (weatherId === 800) {
+ return images.clear;
+ } else if (weatherId === 801) {
+ return images.partlyCloudy;
+ } else if (weatherId < 805 && weatherId > 801) {
+ return images.mostlyCloudy;
+ }
+ return images.unknown;
+}
+
+const WeatherIcon = ({ weatherId }) => {
+ const image = selectImage(weatherId);
+
+ return (
+
+
+
+ );
+};
+
+export default WeatherIcon;
diff --git a/src/data/FakeWeather.json b/src/data/FakeWeather.json
new file mode 100644
index 0000000..e2cb00b
--- /dev/null
+++ b/src/data/FakeWeather.json
@@ -0,0 +1,1259 @@
+{
+ "cod": "200",
+ "message": 0.0032,
+ "cnt": 36,
+ "list": [
+ {
+ "dt": 1487246400,
+ "main": {
+ "temp": 286.67,
+ "temp_min": 281.556,
+ "temp_max": 286.67,
+ "pressure": 972.73,
+ "sea_level": 1046.46,
+ "grnd_level": 972.73,
+ "humidity": 75,
+ "temp_kf": 5.11
+ },
+ "weather": [
+ {
+ "id": 800,
+ "main": "Clear",
+ "description": "clear sky",
+ "icon": "01d"
+ }
+ ],
+ "clouds": {
+ "all": 0
+ },
+ "wind": {
+ "speed": 1.81,
+ "deg": 247.501
+ },
+ "sys": {
+ "pod": "d"
+ },
+ "dt_txt": "2017-02-16 12:00:00"
+ },
+ {
+ "dt": 1487257200,
+ "main": {
+ "temp": 285.66,
+ "temp_min": 281.821,
+ "temp_max": 285.66,
+ "pressure": 970.91,
+ "sea_level": 1044.32,
+ "grnd_level": 970.91,
+ "humidity": 70,
+ "temp_kf": 3.84
+ },
+ "weather": [
+ {
+ "id": 800,
+ "main": "Clear",
+ "description": "clear sky",
+ "icon": "01d"
+ }
+ ],
+ "clouds": {
+ "all": 0
+ },
+ "wind": {
+ "speed": 1.59,
+ "deg": 290.501
+ },
+ "sys": {
+ "pod": "d"
+ },
+ "dt_txt": "2017-02-16 15:00:00"
+ },
+ {
+ "dt": 1487268000,
+ "main": {
+ "temp": 277.05,
+ "temp_min": 274.498,
+ "temp_max": 277.05,
+ "pressure": 970.44,
+ "sea_level": 1044.7,
+ "grnd_level": 970.44,
+ "humidity": 90,
+ "temp_kf": 2.56
+ },
+ "weather": [
+ {
+ "id": 800,
+ "main": "Clear",
+ "description": "clear sky",
+ "icon": "01n"
+ }
+ ],
+ "clouds": {
+ "all": 0
+ },
+ "wind": {
+ "speed": 1.41,
+ "deg": 263.5
+ },
+ "sys": {
+ "pod": "n"
+ },
+ "dt_txt": "2017-02-16 18:00:00"
+ },
+ {
+ "dt": 1487278800,
+ "main": {
+ "temp": 272.78,
+ "temp_min": 271.503,
+ "temp_max": 272.78,
+ "pressure": 969.32,
+ "sea_level": 1044.14,
+ "grnd_level": 969.32,
+ "humidity": 80,
+ "temp_kf": 1.28
+ },
+ "weather": [
+ {
+ "id": 800,
+ "main": "Clear",
+ "description": "clear sky",
+ "icon": "01n"
+ }
+ ],
+ "clouds": {
+ "all": 0
+ },
+ "wind": {
+ "speed": 2.24,
+ "deg": 205.502
+ },
+ "sys": {
+ "pod": "n"
+ },
+ "dt_txt": "2017-02-16 21:00:00"
+ },
+ {
+ "dt": 1487289600,
+ "main": {
+ "temp": 273.341,
+ "temp_min": 273.341,
+ "temp_max": 273.341,
+ "pressure": 968.14,
+ "sea_level": 1042.96,
+ "grnd_level": 968.14,
+ "humidity": 85,
+ "temp_kf": 0
+ },
+ "weather": [
+ {
+ "id": 803,
+ "main": "Clouds",
+ "description": "broken clouds",
+ "icon": "04n"
+ }
+ ],
+ "clouds": {
+ "all": 76
+ },
+ "wind": {
+ "speed": 3.59,
+ "deg": 224.003
+ },
+ "sys": {
+ "pod": "n"
+ },
+ "dt_txt": "2017-02-17 00:00:00"
+ },
+ {
+ "dt": 1487300400,
+ "main": {
+ "temp": 275.568,
+ "temp_min": 275.568,
+ "temp_max": 275.568,
+ "pressure": 966.6,
+ "sea_level": 1041.39,
+ "grnd_level": 966.6,
+ "humidity": 89,
+ "temp_kf": 0
+ },
+ "weather": [
+ {
+ "id": 500,
+ "main": "Rain",
+ "description": "light rain",
+ "icon": "10n"
+ }
+ ],
+ "clouds": {
+ "all": 76
+ },
+ "wind": {
+ "speed": 3.77,
+ "deg": 237.002
+ },
+ "rain": {
+ "3h": 0.32
+ },
+ "sys": {
+ "pod": "n"
+ },
+ "dt_txt": "2017-02-17 03:00:00"
+ },
+ {
+ "dt": 1487311200,
+ "main": {
+ "temp": 276.478,
+ "temp_min": 276.478,
+ "temp_max": 276.478,
+ "pressure": 966.45,
+ "sea_level": 1041.21,
+ "grnd_level": 966.45,
+ "humidity": 97,
+ "temp_kf": 0
+ },
+ "weather": [
+ {
+ "id": 501,
+ "main": "Rain",
+ "description": "moderate rain",
+ "icon": "10n"
+ }
+ ],
+ "clouds": {
+ "all": 92
+ },
+ "wind": {
+ "speed": 3.81,
+ "deg": 268.005
+ },
+ "rain": {
+ "3h": 4.9
+ },
+ "sys": {
+ "pod": "n"
+ },
+ "dt_txt": "2017-02-17 06:00:00"
+ },
+ {
+ "dt": 1487322000,
+ "main": {
+ "temp": 276.67,
+ "temp_min": 276.67,
+ "temp_max": 276.67,
+ "pressure": 967.41,
+ "sea_level": 1041.95,
+ "grnd_level": 967.41,
+ "humidity": 100,
+ "temp_kf": 0
+ },
+ "weather": [
+ {
+ "id": 500,
+ "main": "Rain",
+ "description": "light rain",
+ "icon": "10d"
+ }
+ ],
+ "clouds": {
+ "all": 64
+ },
+ "wind": {
+ "speed": 2.6,
+ "deg": 266.504
+ },
+ "rain": {
+ "3h": 1.37
+ },
+ "sys": {
+ "pod": "d"
+ },
+ "dt_txt": "2017-02-17 09:00:00"
+ },
+ {
+ "dt": 1487332800,
+ "main": {
+ "temp": 278.253,
+ "temp_min": 278.253,
+ "temp_max": 278.253,
+ "pressure": 966.98,
+ "sea_level": 1040.89,
+ "grnd_level": 966.98,
+ "humidity": 95,
+ "temp_kf": 0
+ },
+ "weather": [
+ {
+ "id": 500,
+ "main": "Rain",
+ "description": "light rain",
+ "icon": "10d"
+ }
+ ],
+ "clouds": {
+ "all": 92
+ },
+ "wind": {
+ "speed": 3.17,
+ "deg": 261.501
+ },
+ "rain": {
+ "3h": 0.12
+ },
+ "sys": {
+ "pod": "d"
+ },
+ "dt_txt": "2017-02-17 12:00:00"
+ },
+ {
+ "dt": 1487343600,
+ "main": {
+ "temp": 276.455,
+ "temp_min": 276.455,
+ "temp_max": 276.455,
+ "pressure": 966.38,
+ "sea_level": 1040.17,
+ "grnd_level": 966.38,
+ "humidity": 99,
+ "temp_kf": 0
+ },
+ "weather": [
+ {
+ "id": 500,
+ "main": "Rain",
+ "description": "light rain",
+ "icon": "10d"
+ }
+ ],
+ "clouds": {
+ "all": 92
+ },
+ "wind": {
+ "speed": 3.21,
+ "deg": 268.001
+ },
+ "rain": {
+ "3h": 2.12
+ },
+ "sys": {
+ "pod": "d"
+ },
+ "dt_txt": "2017-02-17 15:00:00"
+ },
+ {
+ "dt": 1487354400,
+ "main": {
+ "temp": 275.639,
+ "temp_min": 275.639,
+ "temp_max": 275.639,
+ "pressure": 966.39,
+ "sea_level": 1040.65,
+ "grnd_level": 966.39,
+ "humidity": 95,
+ "temp_kf": 0
+ },
+ "weather": [
+ {
+ "id": 500,
+ "main": "Rain",
+ "description": "light rain",
+ "icon": "10n"
+ }
+ ],
+ "clouds": {
+ "all": 88
+ },
+ "wind": {
+ "speed": 3.17,
+ "deg": 258.001
+ },
+ "rain": {
+ "3h": 0.7
+ },
+ "snow": {
+ "3h": 0.0775
+ },
+ "sys": {
+ "pod": "n"
+ },
+ "dt_txt": "2017-02-17 18:00:00"
+ },
+ {
+ "dt": 1487365200,
+ "main": {
+ "temp": 275.459,
+ "temp_min": 275.459,
+ "temp_max": 275.459,
+ "pressure": 966.3,
+ "sea_level": 1040.8,
+ "grnd_level": 966.3,
+ "humidity": 96,
+ "temp_kf": 0
+ },
+ "weather": [
+ {
+ "id": 500,
+ "main": "Rain",
+ "description": "light rain",
+ "icon": "10n"
+ }
+ ],
+ "clouds": {
+ "all": 88
+ },
+ "wind": {
+ "speed": 3.71,
+ "deg": 265.503
+ },
+ "rain": {
+ "3h": 1.16
+ },
+ "snow": {
+ "3h": 0.075
+ },
+ "sys": {
+ "pod": "n"
+ },
+ "dt_txt": "2017-02-17 21:00:00"
+ },
+ {
+ "dt": 1487376000,
+ "main": {
+ "temp": 275.035,
+ "temp_min": 275.035,
+ "temp_max": 275.035,
+ "pressure": 966.43,
+ "sea_level": 1041.02,
+ "grnd_level": 966.43,
+ "humidity": 99,
+ "temp_kf": 0
+ },
+ "weather": [
+ {
+ "id": 500,
+ "main": "Rain",
+ "description": "light rain",
+ "icon": "10n"
+ }
+ ],
+ "clouds": {
+ "all": 92
+ },
+ "wind": {
+ "speed": 3.56,
+ "deg": 273.5
+ },
+ "rain": {
+ "3h": 1.37
+ },
+ "snow": {
+ "3h": 0.1525
+ },
+ "sys": {
+ "pod": "n"
+ },
+ "dt_txt": "2017-02-18 00:00:00"
+ },
+ {
+ "dt": 1487386800,
+ "main": {
+ "temp": 274.965,
+ "temp_min": 274.965,
+ "temp_max": 274.965,
+ "pressure": 966.36,
+ "sea_level": 1041.17,
+ "grnd_level": 966.36,
+ "humidity": 97,
+ "temp_kf": 0
+ },
+ "weather": [
+ {
+ "id": 500,
+ "main": "Rain",
+ "description": "light rain",
+ "icon": "10n"
+ }
+ ],
+ "clouds": {
+ "all": 88
+ },
+ "wind": {
+ "speed": 2.66,
+ "deg": 285.502
+ },
+ "rain": {
+ "3h": 0.79
+ },
+ "snow": {
+ "3h": 0.52
+ },
+ "sys": {
+ "pod": "n"
+ },
+ "dt_txt": "2017-02-18 03:00:00"
+ },
+ {
+ "dt": 1487397600,
+ "main": {
+ "temp": 274.562,
+ "temp_min": 274.562,
+ "temp_max": 274.562,
+ "pressure": 966.75,
+ "sea_level": 1041.57,
+ "grnd_level": 966.75,
+ "humidity": 98,
+ "temp_kf": 0
+ },
+ "weather": [
+ {
+ "id": 500,
+ "main": "Rain",
+ "description": "light rain",
+ "icon": "10n"
+ }
+ ],
+ "clouds": {
+ "all": 88
+ },
+ "wind": {
+ "speed": 1.46,
+ "deg": 276.5
+ },
+ "rain": {
+ "3h": 0.08
+ },
+ "snow": {
+ "3h": 0.06
+ },
+ "sys": {
+ "pod": "n"
+ },
+ "dt_txt": "2017-02-18 06:00:00"
+ },
+ {
+ "dt": 1487408400,
+ "main": {
+ "temp": 275.648,
+ "temp_min": 275.648,
+ "temp_max": 275.648,
+ "pressure": 967.21,
+ "sea_level": 1041.74,
+ "grnd_level": 967.21,
+ "humidity": 99,
+ "temp_kf": 0
+ },
+ "weather": [
+ {
+ "id": 500,
+ "main": "Rain",
+ "description": "light rain",
+ "icon": "10d"
+ }
+ ],
+ "clouds": {
+ "all": 56
+ },
+ "wind": {
+ "speed": 1.5,
+ "deg": 251.008
+ },
+ "rain": {
+ "3h": 0.02
+ },
+ "snow": {
+ "3h": 0.03
+ },
+ "sys": {
+ "pod": "d"
+ },
+ "dt_txt": "2017-02-18 09:00:00"
+ },
+ {
+ "dt": 1487419200,
+ "main": {
+ "temp": 277.927,
+ "temp_min": 277.927,
+ "temp_max": 277.927,
+ "pressure": 966.06,
+ "sea_level": 1039.98,
+ "grnd_level": 966.06,
+ "humidity": 95,
+ "temp_kf": 0
+ },
+ "weather": [
+ {
+ "id": 800,
+ "main": "Clear",
+ "description": "clear sky",
+ "icon": "02d"
+ }
+ ],
+ "clouds": {
+ "all": 8
+ },
+ "wind": {
+ "speed": 0.86,
+ "deg": 244.004
+ },
+ "rain": {},
+ "snow": {},
+ "sys": {
+ "pod": "d"
+ },
+ "dt_txt": "2017-02-18 12:00:00"
+ },
+ {
+ "dt": 1487430000,
+ "main": {
+ "temp": 278.367,
+ "temp_min": 278.367,
+ "temp_max": 278.367,
+ "pressure": 964.57,
+ "sea_level": 1038.35,
+ "grnd_level": 964.57,
+ "humidity": 89,
+ "temp_kf": 0
+ },
+ "weather": [
+ {
+ "id": 800,
+ "main": "Clear",
+ "description": "clear sky",
+ "icon": "02d"
+ }
+ ],
+ "clouds": {
+ "all": 8
+ },
+ "wind": {
+ "speed": 1.62,
+ "deg": 79.5024
+ },
+ "rain": {},
+ "snow": {},
+ "sys": {
+ "pod": "d"
+ },
+ "dt_txt": "2017-02-18 15:00:00"
+ },
+ {
+ "dt": 1487440800,
+ "main": {
+ "temp": 273.797,
+ "temp_min": 273.797,
+ "temp_max": 273.797,
+ "pressure": 964.13,
+ "sea_level": 1038.48,
+ "grnd_level": 964.13,
+ "humidity": 91,
+ "temp_kf": 0
+ },
+ "weather": [
+ {
+ "id": 800,
+ "main": "Clear",
+ "description": "clear sky",
+ "icon": "01n"
+ }
+ ],
+ "clouds": {
+ "all": 0
+ },
+ "wind": {
+ "speed": 2.42,
+ "deg": 77.0026
+ },
+ "rain": {},
+ "snow": {},
+ "sys": {
+ "pod": "n"
+ },
+ "dt_txt": "2017-02-18 18:00:00"
+ },
+ {
+ "dt": 1487451600,
+ "main": {
+ "temp": 271.239,
+ "temp_min": 271.239,
+ "temp_max": 271.239,
+ "pressure": 963.39,
+ "sea_level": 1038.21,
+ "grnd_level": 963.39,
+ "humidity": 93,
+ "temp_kf": 0
+ },
+ "weather": [
+ {
+ "id": 800,
+ "main": "Clear",
+ "description": "clear sky",
+ "icon": "01n"
+ }
+ ],
+ "clouds": {
+ "all": 0
+ },
+ "wind": {
+ "speed": 2.42,
+ "deg": 95.5017
+ },
+ "rain": {},
+ "snow": {},
+ "sys": {
+ "pod": "n"
+ },
+ "dt_txt": "2017-02-18 21:00:00"
+ },
+ {
+ "dt": 1487462400,
+ "main": {
+ "temp": 269.553,
+ "temp_min": 269.553,
+ "temp_max": 269.553,
+ "pressure": 962.39,
+ "sea_level": 1037.44,
+ "grnd_level": 962.39,
+ "humidity": 92,
+ "temp_kf": 0
+ },
+ "weather": [
+ {
+ "id": 800,
+ "main": "Clear",
+ "description": "clear sky",
+ "icon": "01n"
+ }
+ ],
+ "clouds": {
+ "all": 0
+ },
+ "wind": {
+ "speed": 1.96,
+ "deg": 101.004
+ },
+ "rain": {},
+ "snow": {},
+ "sys": {
+ "pod": "n"
+ },
+ "dt_txt": "2017-02-19 00:00:00"
+ },
+ {
+ "dt": 1487473200,
+ "main": {
+ "temp": 268.198,
+ "temp_min": 268.198,
+ "temp_max": 268.198,
+ "pressure": 961.28,
+ "sea_level": 1036.51,
+ "grnd_level": 961.28,
+ "humidity": 84,
+ "temp_kf": 0
+ },
+ "weather": [
+ {
+ "id": 800,
+ "main": "Clear",
+ "description": "clear sky",
+ "icon": "01n"
+ }
+ ],
+ "clouds": {
+ "all": 0
+ },
+ "wind": {
+ "speed": 1.06,
+ "deg": 121.5
+ },
+ "rain": {},
+ "snow": {},
+ "sys": {
+ "pod": "n"
+ },
+ "dt_txt": "2017-02-19 03:00:00"
+ },
+ {
+ "dt": 1487484000,
+ "main": {
+ "temp": 267.295,
+ "temp_min": 267.295,
+ "temp_max": 267.295,
+ "pressure": 961.16,
+ "sea_level": 1036.45,
+ "grnd_level": 961.16,
+ "humidity": 86,
+ "temp_kf": 0
+ },
+ "weather": [
+ {
+ "id": 800,
+ "main": "Clear",
+ "description": "clear sky",
+ "icon": "01n"
+ }
+ ],
+ "clouds": {
+ "all": 0
+ },
+ "wind": {
+ "speed": 1.17,
+ "deg": 155.005
+ },
+ "rain": {},
+ "snow": {},
+ "sys": {
+ "pod": "n"
+ },
+ "dt_txt": "2017-02-19 06:00:00"
+ },
+ {
+ "dt": 1487494800,
+ "main": {
+ "temp": 272.956,
+ "temp_min": 272.956,
+ "temp_max": 272.956,
+ "pressure": 962.03,
+ "sea_level": 1036.85,
+ "grnd_level": 962.03,
+ "humidity": 84,
+ "temp_kf": 0
+ },
+ "weather": [
+ {
+ "id": 800,
+ "main": "Clear",
+ "description": "clear sky",
+ "icon": "01d"
+ }
+ ],
+ "clouds": {
+ "all": 0
+ },
+ "wind": {
+ "speed": 1.66,
+ "deg": 195.002
+ },
+ "rain": {},
+ "snow": {},
+ "sys": {
+ "pod": "d"
+ },
+ "dt_txt": "2017-02-19 09:00:00"
+ },
+ {
+ "dt": 1487505600,
+ "main": {
+ "temp": 277.422,
+ "temp_min": 277.422,
+ "temp_max": 277.422,
+ "pressure": 962.23,
+ "sea_level": 1036.06,
+ "grnd_level": 962.23,
+ "humidity": 89,
+ "temp_kf": 0
+ },
+ "weather": [
+ {
+ "id": 800,
+ "main": "Clear",
+ "description": "clear sky",
+ "icon": "01d"
+ }
+ ],
+ "clouds": {
+ "all": 0
+ },
+ "wind": {
+ "speed": 1.32,
+ "deg": 357.003
+ },
+ "rain": {},
+ "snow": {},
+ "sys": {
+ "pod": "d"
+ },
+ "dt_txt": "2017-02-19 12:00:00"
+ },
+ {
+ "dt": 1487516400,
+ "main": {
+ "temp": 277.984,
+ "temp_min": 277.984,
+ "temp_max": 277.984,
+ "pressure": 962.15,
+ "sea_level": 1035.86,
+ "grnd_level": 962.15,
+ "humidity": 87,
+ "temp_kf": 0
+ },
+ "weather": [
+ {
+ "id": 800,
+ "main": "Clear",
+ "description": "clear sky",
+ "icon": "01d"
+ }
+ ],
+ "clouds": {
+ "all": 0
+ },
+ "wind": {
+ "speed": 1.58,
+ "deg": 48.5031
+ },
+ "rain": {},
+ "snow": {},
+ "sys": {
+ "pod": "d"
+ },
+ "dt_txt": "2017-02-19 15:00:00"
+ },
+ {
+ "dt": 1487527200,
+ "main": {
+ "temp": 272.459,
+ "temp_min": 272.459,
+ "temp_max": 272.459,
+ "pressure": 963.31,
+ "sea_level": 1037.81,
+ "grnd_level": 963.31,
+ "humidity": 90,
+ "temp_kf": 0
+ },
+ "weather": [
+ {
+ "id": 800,
+ "main": "Clear",
+ "description": "clear sky",
+ "icon": "01n"
+ }
+ ],
+ "clouds": {
+ "all": 0
+ },
+ "wind": {
+ "speed": 1.16,
+ "deg": 75.5042
+ },
+ "rain": {},
+ "snow": {},
+ "sys": {
+ "pod": "n"
+ },
+ "dt_txt": "2017-02-19 18:00:00"
+ },
+ {
+ "dt": 1487538000,
+ "main": {
+ "temp": 269.473,
+ "temp_min": 269.473,
+ "temp_max": 269.473,
+ "pressure": 964.65,
+ "sea_level": 1039.76,
+ "grnd_level": 964.65,
+ "humidity": 83,
+ "temp_kf": 0
+ },
+ "weather": [
+ {
+ "id": 800,
+ "main": "Clear",
+ "description": "clear sky",
+ "icon": "01n"
+ }
+ ],
+ "clouds": {
+ "all": 0
+ },
+ "wind": {
+ "speed": 1.12,
+ "deg": 174.002
+ },
+ "rain": {},
+ "snow": {},
+ "sys": {
+ "pod": "n"
+ },
+ "dt_txt": "2017-02-19 21:00:00"
+ },
+ {
+ "dt": 1487548800,
+ "main": {
+ "temp": 268.793,
+ "temp_min": 268.793,
+ "temp_max": 268.793,
+ "pressure": 965.92,
+ "sea_level": 1041.32,
+ "grnd_level": 965.92,
+ "humidity": 80,
+ "temp_kf": 0
+ },
+ "weather": [
+ {
+ "id": 800,
+ "main": "Clear",
+ "description": "clear sky",
+ "icon": "01n"
+ }
+ ],
+ "clouds": {
+ "all": 0
+ },
+ "wind": {
+ "speed": 2.11,
+ "deg": 207.502
+ },
+ "rain": {},
+ "snow": {},
+ "sys": {
+ "pod": "n"
+ },
+ "dt_txt": "2017-02-20 00:00:00"
+ },
+ {
+ "dt": 1487559600,
+ "main": {
+ "temp": 268.106,
+ "temp_min": 268.106,
+ "temp_max": 268.106,
+ "pressure": 966.4,
+ "sea_level": 1042.18,
+ "grnd_level": 966.4,
+ "humidity": 85,
+ "temp_kf": 0
+ },
+ "weather": [
+ {
+ "id": 800,
+ "main": "Clear",
+ "description": "clear sky",
+ "icon": "01n"
+ }
+ ],
+ "clouds": {
+ "all": 0
+ },
+ "wind": {
+ "speed": 1.67,
+ "deg": 191.001
+ },
+ "rain": {},
+ "snow": {},
+ "sys": {
+ "pod": "n"
+ },
+ "dt_txt": "2017-02-20 03:00:00"
+ },
+ {
+ "dt": 1487570400,
+ "main": {
+ "temp": 267.655,
+ "temp_min": 267.655,
+ "temp_max": 267.655,
+ "pressure": 967.4,
+ "sea_level": 1043.43,
+ "grnd_level": 967.4,
+ "humidity": 84,
+ "temp_kf": 0
+ },
+ "weather": [
+ {
+ "id": 800,
+ "main": "Clear",
+ "description": "clear sky",
+ "icon": "01n"
+ }
+ ],
+ "clouds": {
+ "all": 0
+ },
+ "wind": {
+ "speed": 1.61,
+ "deg": 194.001
+ },
+ "rain": {},
+ "snow": {},
+ "sys": {
+ "pod": "n"
+ },
+ "dt_txt": "2017-02-20 06:00:00"
+ },
+ {
+ "dt": 1487581200,
+ "main": {
+ "temp": 273.75,
+ "temp_min": 273.75,
+ "temp_max": 273.75,
+ "pressure": 968.84,
+ "sea_level": 1044.23,
+ "grnd_level": 968.84,
+ "humidity": 83,
+ "temp_kf": 0
+ },
+ "weather": [
+ {
+ "id": 800,
+ "main": "Clear",
+ "description": "clear sky",
+ "icon": "01d"
+ }
+ ],
+ "clouds": {
+ "all": 0
+ },
+ "wind": {
+ "speed": 2.49,
+ "deg": 208.5
+ },
+ "rain": {},
+ "snow": {},
+ "sys": {
+ "pod": "d"
+ },
+ "dt_txt": "2017-02-20 09:00:00"
+ },
+ {
+ "dt": 1487592000,
+ "main": {
+ "temp": 279.302,
+ "temp_min": 279.302,
+ "temp_max": 279.302,
+ "pressure": 968.37,
+ "sea_level": 1042.52,
+ "grnd_level": 968.37,
+ "humidity": 83,
+ "temp_kf": 0
+ },
+ "weather": [
+ {
+ "id": 800,
+ "main": "Clear",
+ "description": "clear sky",
+ "icon": "01d"
+ }
+ ],
+ "clouds": {
+ "all": 0
+ },
+ "wind": {
+ "speed": 2.46,
+ "deg": 252.001
+ },
+ "rain": {},
+ "snow": {},
+ "sys": {
+ "pod": "d"
+ },
+ "dt_txt": "2017-02-20 12:00:00"
+ },
+ {
+ "dt": 1487602800,
+ "main": {
+ "temp": 279.343,
+ "temp_min": 279.343,
+ "temp_max": 279.343,
+ "pressure": 967.9,
+ "sea_level": 1041.64,
+ "grnd_level": 967.9,
+ "humidity": 81,
+ "temp_kf": 0
+ },
+ "weather": [
+ {
+ "id": 800,
+ "main": "Clear",
+ "description": "clear sky",
+ "icon": "01d"
+ }
+ ],
+ "clouds": {
+ "all": 0
+ },
+ "wind": {
+ "speed": 3.21,
+ "deg": 268.001
+ },
+ "rain": {},
+ "snow": {},
+ "sys": {
+ "pod": "d"
+ },
+ "dt_txt": "2017-02-20 15:00:00"
+ },
+ {
+ "dt": 1487613600,
+ "main": {
+ "temp": 274.443,
+ "temp_min": 274.443,
+ "temp_max": 274.443,
+ "pressure": 968.19,
+ "sea_level": 1042.66,
+ "grnd_level": 968.19,
+ "humidity": 88,
+ "temp_kf": 0
+ },
+ "weather": [
+ {
+ "id": 801,
+ "main": "Clouds",
+ "description": "few clouds",
+ "icon": "02n"
+ }
+ ],
+ "clouds": {
+ "all": 24
+ },
+ "wind": {
+ "speed": 3.27,
+ "deg": 257.501
+ },
+ "rain": {},
+ "snow": {},
+ "sys": {
+ "pod": "n"
+ },
+ "dt_txt": "2017-02-20 18:00:00"
+ },
+ {
+ "dt": 1487624400,
+ "main": {
+ "temp": 272.424,
+ "temp_min": 272.424,
+ "temp_max": 272.424,
+ "pressure": 968.38,
+ "sea_level": 1043.17,
+ "grnd_level": 968.38,
+ "humidity": 85,
+ "temp_kf": 0
+ },
+ "weather": [
+ {
+ "id": 801,
+ "main": "Clouds",
+ "description": "few clouds",
+ "icon": "02n"
+ }
+ ],
+ "clouds": {
+ "all": 20
+ },
+ "wind": {
+ "speed": 3.57,
+ "deg": 255.503
+ },
+ "rain": {},
+ "snow": {},
+ "sys": {
+ "pod": "n"
+ },
+ "dt_txt": "2017-02-20 21:00:00"
+ }
+ ],
+ "city": {
+ "id": 6940463,
+ "name": "Altstadt",
+ "coord": {
+ "lat": 48.137,
+ "lon": 11.5752
+ },
+ "country": "none"
+ }
+}