Python :: Aufgabe #159 :: Lösung #6
5 Lösungen
#159
Ist Freitag der 13. ein Unglücks- oder Glückstag?
Anfänger - Python
von hollst
- 26.06.2017 um 13:14 Uhr
Wir betrachten den Gregorianischen Kalender mit den üblichen 12 Monaten und Schaltjahren.
Schaltjahr ist, wenn die Jahreszahl durch 4 teilbar ist, mit Ausnahme der Jahre, die durch 100,
jedoch nicht durch 400 teilbar sind. Im Schaltjahr hat der Februar 29 Tage.
Unsere Zeitrechnung beginne mit dem 1. Januar 00.
Frage: Welcher Wochentag fällt
a) am häufigsten auf einen 13. des Monats und
b) welcher bzw. welche am wenigsten.
Schaltjahr ist, wenn die Jahreszahl durch 4 teilbar ist, mit Ausnahme der Jahre, die durch 100,
jedoch nicht durch 400 teilbar sind. Im Schaltjahr hat der Februar 29 Tage.
Unsere Zeitrechnung beginne mit dem 1. Januar 00.
Frage: Welcher Wochentag fällt
a) am häufigsten auf einen 13. des Monats und
b) welcher bzw. welche am wenigsten.
#6
von mangotee (60 Punkte)
- 06.01.2018 um 15:48 Uhr
def erstellung_kalender():
wochentage = ["Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag", "Sonntag"]
drei_eins = (1, 3, 5, 7, 8, 10, 12)
drei_null = (4, 6, 9, 11)
kalender = []
# Hinzufügen der Jahre
for j in range(0, 2118+1):
# Hinzufügen der Monate
for monat in range(1, 13):
calöndör = [str(j), str('{:02d}'.format(monat))]
# Monate mit 30/31 Tagen
if monat in drei_eins:
for tag in range(1, 32):
calöndör = [str(j), str('{:02d}'.format(monat)), str('{:02d}'.format(tag))]
kalender.append(calöndör)
if monat in drei_null:
for tag in range(1, 31):
calöndör = [str(j), str('{:02d}'.format(monat)), str('{:02d}'.format(tag))]
kalender.append(calöndör)
# Das Schaltjahr
if monat == 2:
if j % 100 == 0:
for tag in range(1, 29):
calöndör = [str(j), str('{:02d}'.format(monat)), str('{:02d}'.format(tag))]
kalender.append(calöndör)
elif j % 400 == 0:
for tag in range(1, 30):
calöndör = [str(j), str('{:02d}'.format(monat)), str('{:02d}'.format(tag))]
kalender.append(calöndör)
elif j % 4 == 0:
for tag in range(1, 30):
calöndör = [str(j), str('{:02d}'.format(monat)), str('{:02d}'.format(tag))]
kalender.append(calöndör)
else:
for tag in range(1, 29):
calöndör = [str(j), str('{:02d}'.format(monat)), str('{:02d}'.format(tag))]
kalender.append(calöndör)
#Erstellung der Wochentag
zahl = 4
for i in range(len(kalender)):
zahl += 1
kalender[i].append(wochentage[zahl])
if zahl == 6:
zahl = -1
continue
return kalender
def ergebnis(kalender,eingabe):
auswertung=[]
tage=[]
wochentage = ["Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag", "Sonntag"]
for p, datum in enumerate(kalender):
tag = "".join(datum[2])
if eingabe == tag:
tage.append(datum[3])
continue
print(" ")
for i in wochentage:
auswertung.append(tage.count(i))
print(i,":",tage.count(i))
m=max(auswertung)
n=min(auswertung)
p_max=auswertung.index(m)
p_min=auswertung.index(n)
print("Am häufigsten kommt der",wochentage[p_max],"mit",m,"Tage vor!\n"
"Am wenigsten kommt der",wochentage[p_min],"mit",n,"Tagen vor!")
#Hauptprogramm
kalender=erstellung_kalender()
eingabe=input("Eingabe des Tages: ")
ergebnis(kalender,eingabe)
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1
