Python :: Aufgabe #21 :: Lösung #4
4 Lösungen

#21
Anzahl Freitag, der 13te über bestimmten Zeitraum
Anfänger - Python
von pocki
- 29.12.2012 um 19:56 Uhr
Schreibe ein Programm welches 2 verschiedene Datum einliest und berechne die Anzahl wie oft in diesem Zeitraum der 13te eines Monats auf einen Freitag fiel und gib diese aus.
Konsolenausgabe:
Startdatum: 01.01.2009
Enddatum: 31.12.2009
13.02.2009
13.03.2009
13.11.2009
Summe: 3
#4

von PythonLui (400 Punkte)
- 19.04.2021 um 09:29 Uhr

import datetime # Eingabe start = input("Startdatum: ") ende = input("Enddatum: ") # Liste erstellen start_liste = start.rsplit(".") ende_liste = ende.rsplit(".") # Liste in in Integer Liste wandeln for i in range(len(start_liste)): start_liste[i] = int(start_liste[i]) for i in range(len(ende_liste)): ende_liste[i] = int(ende_liste[i]) # Überprüfen ob Ende vor oder nach dem 13. liegt start_liste[0] = 13 if ende_liste[0] >= 13: ende_liste[0] = 13 ende_liste[1] += 1 summe = 0 while True: year_difference = ende_liste[2] - start_liste[2] check_month = start_liste # Wenn Jahreswechsel vorhanden ist if year_difference > 0: # Durchläuft ein ganzes Jahr for month in range(start_liste[1], 12 + 1): check_month[1] = month aktuelles_pruef_datum = datetime.date(check_month[2], check_month[1], check_month[0]) umwandlung = datetime.date.timetuple(aktuelles_pruef_datum) # Überprüfen ob der 13 ein Freitag ist if umwandlung.tm_wday == 4: print(f"{check_month[0]}.{check_month[1]}.{check_month[2]}") summe += 1 start_liste[1] = 1 start_liste[2] += 1 # Wenn kein Jahreswechsle vorhanden ist else: for month in range(start_liste[1], ende_liste[1]): check_month[1] = month aktuelles_pruef_datum = datetime.date(check_month[2], check_month[1], check_month[0]) umwandlung = datetime.date.timetuple(aktuelles_pruef_datum) if umwandlung.tm_wday == 4: print(f"{check_month[0]}.{check_month[1]}.{check_month[2]}") summe += 1 break print(f"Summe: {summe}")
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1