|
@@ -1,19 +1,56 @@
|
|
|
# Schaltjahre
|
|
|
# Autoren: Gunnar, Jan
|
|
|
# Python 2.7.15
|
|
|
-# 27.1.19
|
|
|
+# 2.2.19
|
|
|
|
|
|
-#noch zu erledigen: Eingabefehler abfangen, Datum auf Plausibilitaet pruefen
|
|
|
+#noch zu erledigen: Eingabefehler abfangen in Funktion packen, um Falscheingabe im x-ten Versuch abzufangen.
|
|
|
|
|
|
import math as m
|
|
|
+
|
|
|
+monate = ["Januar", "Februar", "Maerz", "April", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"]
|
|
|
+einunddreissigtage = [1, 3, 5, 7, 8, 10, 12]
|
|
|
+dreissigtage = [4, 6, 9, 11]
|
|
|
def Programm():
|
|
|
print ""
|
|
|
print "Bitte geben Sie ein Datum ein."
|
|
|
print ""
|
|
|
- jahr = input("Jahr: ")
|
|
|
- monat = input("Monat: ")
|
|
|
- tag = input("Tag: ")
|
|
|
-
|
|
|
+ while True:
|
|
|
+ try:
|
|
|
+ jahr = raw_input("Jahr: ")
|
|
|
+ jahr = int(jahr)
|
|
|
+ break
|
|
|
+ except ValueError:
|
|
|
+ print "Bitte natuerliche Zahl eingeben!"
|
|
|
+ while True:
|
|
|
+ try:
|
|
|
+ monat = raw_input("Monat: ")
|
|
|
+ monat = int(monat)
|
|
|
+ break
|
|
|
+ except ValueError:
|
|
|
+ print "Bitte natuerliche Zahl eingeben!"
|
|
|
+ if monat > 12:
|
|
|
+ print "Fuer den Monat bitte Zahl zwischen 1 und 12 eingeben!"
|
|
|
+ monat = input("Monat: ")
|
|
|
+ while True:
|
|
|
+ try:
|
|
|
+ tag = raw_input("Tag: ")
|
|
|
+ tag = int(tag)
|
|
|
+ break
|
|
|
+ except ValueError:
|
|
|
+ print "Bitte natuerliche Zahl eingeben!"
|
|
|
+ if tag > 31:
|
|
|
+ print "Fuer den Tag bitte Zahl zwischen 1 und 31 eingeben!"
|
|
|
+ tag = input("Tag: ")
|
|
|
+ if monat in einunddreissigtage and tag > 31:
|
|
|
+ print "Der", monate[monat - 1], "hat nur 31 Tage!"
|
|
|
+ tag = input("Tag: ")
|
|
|
+ elif monat in dreissigtage and tag > 3:
|
|
|
+ print "Der", monate[monat - 1], "hat nur 30 Tage!"
|
|
|
+ tag = input("Tag: ")
|
|
|
+ elif monat == 2 and tag > 29:
|
|
|
+ print "Der Februar hat maximal 29 Tage!"
|
|
|
+ tag = input("Tag: ")
|
|
|
+
|
|
|
tagemonate = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334] #Anzahl der Tage im Jahr, zu Beginn eines jeden Monats
|
|
|
monatetage = tagemonate[monat - 1] #Anzahl der Tage im Jahr, zu Beginn des gewaehlten Monats
|
|
|
jahrtage = monatetage + tag #Anzahl der Tage im Jahr, zum gewaehlten Datum
|
|
@@ -43,9 +80,13 @@ def Programm():
|
|
|
|
|
|
|
|
|
tage = tage + jahrtage #Tage vor dem gewaehlten Jahr und Tage im gewaehlten Jahr werden addiert.
|
|
|
- print ""
|
|
|
- print "Das Jahr", jahr, "ist", schaltjahr
|
|
|
- print "Das gewaehlte Datum ist ein", wochentage[int(tage % 7 - 1)] #Teilt gesamte Tage durch Laenge einer Woche und ordnet dem Rest einen Wochentag zu.
|
|
|
+ if schaltjahr == "kein Schaltjahr." and monat == 2 and tag == 29:
|
|
|
+ print "Das Jahr", jahr, "ist kein Schaltjahr."
|
|
|
+ print "Daher gibt es in diesem Jahr keinen 29. Februar"
|
|
|
+ else:
|
|
|
+ print ""
|
|
|
+ print "Das Jahr", jahr, "ist", schaltjahr
|
|
|
+ print "Das gewaehlte Datum ist ein", wochentage[int(tage % 7 - 1)] #Teilt gesamte Tage durch Laenge einer Woche und ordnet dem Rest einen Wochentag zu.
|
|
|
print ""
|
|
|
print "Zum Berechnen eines weiteren Datums druecken Sie J. "
|
|
|
nochmal = raw_input("Beenden des Programms mit beliebiger Taste. ")
|