diff --git a/weather_report.py b/weather_report.py index 6148308..4f5fd58 100644 --- a/weather_report.py +++ b/weather_report.py @@ -85,8 +85,11 @@ def _data_temp_hourly(start: datetime, end: datetime): def _data_rain_daily(start: datetime, end: datetime): + # +1 Tag extra damit der Abschlusswert des letzten Tages (kum. Zähler) enthalten ist data = fetch("/weather/range", { - "start": start.isoformat(), "end": end.isoformat(), "limit": 50000, + "start": start.isoformat(), + "end": (end + timedelta(days=1)).isoformat(), + "limit": 50000, }) by_day: dict[str, list[float]] = defaultdict(list) for d in data: @@ -95,11 +98,17 @@ def _data_rain_daily(start: datetime, end: datetime): dates, rain = [], [] for day_key in sorted(by_day): - vals = by_day[day_key] + day_dt = datetime.fromisoformat(day_key).replace(tzinfo=timezone.utc) + if day_dt >= end: + break + vals = list(by_day[day_key]) + next_key = (day_dt + timedelta(days=1)).strftime("%Y-%m-%d") + if next_key in by_day: + vals.append(by_day[next_key][0]) daily = max(vals) - min(vals) if daily < 0: daily = max(vals) - dates.append(datetime.fromisoformat(day_key).replace(tzinfo=timezone.utc)) + dates.append(day_dt) rain.append(round(daily, 1)) return dates, rain