Python :: Aufgabe #21 :: Lösung #1

4 Lösungen Lösungen öffentlich
#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
#1
vote_ok
von jigga (4260 Punkte) - 20.06.2015 um 12:50 Uhr
Quellcode ausblenden Python-Code
import datetime, sys

anfang = input("Startdatum: ").split('.')[::-1]
ende = input("Enddatum: ").split('.')[::-1]
print()

anzahl = 0

for i in range(len(anfang)):
    anfang[i] = int(anfang[i])

for i in range(len(ende)):
    ende[i] = int(ende[i])

try:
    startdatum = datetime.date(anfang[0],anfang[1],anfang[2])
    enddatum = datetime.date(ende[0],ende[1],ende[2])

except:
    print("Irgendwas stimmt mit der/dem Eingabe/Datum nicht!")
    sys.exit(0)

if startdatum > enddatum:
    print("Startdatum groesser Enddatum!")
    sys.exit(0)

if anfang[2] > 13:
    anfang[2] = 13
    anfang[1] += 1

while True:
    if datetime.date(anfang[0],anfang[1],13).weekday() == 4:
        if len(str(anfang[1])) == 1:
            print("13.0" + str(anfang[1]) + "." + str(anfang[0]))        

        else:
            print("13." + str(anfang[1]) + "." + str(anfang[0]))

        anzahl += 1
        
    if anfang[1] == 12:
        anfang[1] = 1
        anfang[0] += 1

    else:
        anfang[1] += 1

    startdatum = datetime.date(anfang[0],anfang[1],anfang[2])

    if startdatum > enddatum:
        break

print()
print("Summe:", anzahl)

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben