mirror of
https://github.com/Akkudoktor-EOS/EOS.git
synced 2025-12-14 07:46:18 +00:00
Sommerzeit Probleme (bei Zeitumstellung gibt es eine Stunde weniger)
Für die PVForecast kann jetzt ein aktuelle Messwert der PV Leistung eingegeben werden!
This commit is contained in:
26
modules/class_sommerzeit.py
Normal file
26
modules/class_sommerzeit.py
Normal file
@@ -0,0 +1,26 @@
|
||||
import datetime
|
||||
import pytz
|
||||
|
||||
def ist_dst_wechsel(tag, timezone="Europe/Berlin"):
|
||||
"""Prüft, ob an einem gegebenen Tag die Sommerzeit beginnt oder endet."""
|
||||
tz = pytz.timezone(timezone)
|
||||
# Hole den aktuellen Tag und den nächsten Tag
|
||||
aktueller_tag = datetime.datetime(tag.year, tag.month, tag.day)
|
||||
naechster_tag = aktueller_tag + datetime.timedelta(days=1)
|
||||
|
||||
# Lokalisiere die Tage in der gegebenen Zeitzone
|
||||
aktueller_tag_localized = tz.localize(aktueller_tag, is_dst=None)
|
||||
naechster_tag_localized = tz.localize(naechster_tag, is_dst=None)
|
||||
|
||||
# Prüfe, ob die UTC-Offsets unterschiedlich sind (DST-Wechsel)
|
||||
dst_wechsel = aktueller_tag_localized.dst() != naechster_tag_localized.dst()
|
||||
|
||||
return dst_wechsel, aktueller_tag_localized.dst(), naechster_tag_localized.dst()
|
||||
|
||||
|
||||
# Beispielverwendung
|
||||
start_datum = datetime.datetime(2024, 3, 31) # Datum der DST-Umstellung
|
||||
if ist_dst_wechsel(start_datum):
|
||||
prediction_hours = 23 # Anpassung auf 23 Stunden für DST-Wechseltage
|
||||
else:
|
||||
prediction_hours = 24 # Standardwert für Tage ohne DST-Wechsel
|
||||
Reference in New Issue
Block a user