diff --git a/code/corelation.py b/code/corelation.py index 47917ad..c5ea7dc 100644 --- a/code/corelation.py +++ b/code/corelation.py @@ -114,7 +114,7 @@ month_translation = { # Funktion, um Datumsbereiche wie 'Mrz 29-Apr 4' oder 'Dez 29, 2023-Jan 4, 2024' in die Kalenderwoche und das Startdatum zu konvertieren def convert_to_week_number_and_start_date(date_range_str): - # Entferne zusätzliche Leerzeichen um den Bindestrich herum + # Entferne zusätzliche Leerzeichen um den Bindestrich herum und entferne Kommas date_range_str = date_range_str.replace(" - ", "-").replace(",", "") # Splitte den Datumsbereich in Start- und Endteil @@ -128,12 +128,20 @@ def convert_to_week_number_and_start_date(date_range_str): # Verarbeite den Endteil end_parts = end_part.split(" ") - if len(end_parts) == 2: + # Verarbeite das Enddatum, basierend darauf, ob ein Jahr enthalten ist oder nicht + if len(end_parts) == 3: # Fall: 'Jan 4 2024' end_month_str = end_parts[0] - end_day = int(end_parts[1].strip()) # Nimm den Endtag + end_day = int(end_parts[1].strip()) + end_year = int(end_parts[2].strip()) # Nimm das Jahr aus dem Endteil + elif len(end_parts) == 2: # Fall: 'Jan 4' ohne Jahr + end_month_str = end_parts[0] + end_day = int(end_parts[1].strip()) + end_year = datetime.now().year # Nutze das aktuelle Jahr, wenn kein Jahr angegeben ist else: - end_month_str = start_month_str # Falls kein Monat angegeben, setze den Startmonat + # Falls kein Monat angegeben, setze den Startmonat für den Endteil + end_month_str = start_month_str end_day = int(end_parts[0].strip()) + end_year = datetime.now().year # Nutze das aktuelle Jahr # Konvertiere den deutschen Monatsnamen in den englischen für beide Monate if start_month_str in month_translation: @@ -143,21 +151,19 @@ def convert_to_week_number_and_start_date(date_range_str): # Wenn der Startteil ein Jahr enthält, nutze dieses if len(start_parts) == 3: - current_year = int(start_parts[2]) + start_year = int(start_parts[2]) else: - current_year = datetime.now().year + start_year = datetime.now().year - # Wenn der Datumsbereich über den Dezember hinausgeht, endet das Enddatum im nächsten Jahr + # Falls der Datumsbereich über den Dezember hinausgeht, endet das Enddatum im nächsten Jahr if start_month_str == 'Dec' and end_month_str == 'Jan': - end_year = current_year + 1 - else: - end_year = current_year + end_year = start_year + 1 try: # Konvertiere das Startdatum in ein Datum - start_date = datetime.strptime(f"{start_month_str} {start_day} {current_year}", "%b %d %Y") + start_date = datetime.strptime(f"{start_month_str} {start_day} {start_year}", "%b %d %Y") except ValueError: - raise ValueError(f"Ungültiges Startdatum: {start_month_str} {start_day} {current_year}") + raise ValueError(f"Ungültiges Startdatum: {start_month_str} {start_day} {start_year}") try: # Konvertiere das Enddatum in ein Datum