# Simon Pense, Jeremy Gabrysch, Yulong Chunyu #!/usr/bin/python import time #Module werden importiert import calendar zeit = {'j':0,'m':0,'t':0,'s':0} #globale Variablen fuer Zeit grossmonat = [1,3,5,7,8,10,12] #Lange Monate kleinemonat = [4,6,7,9,11] #kurze Monate def zahlenproben(z): #Funktion zum Testen der eingegebenen Variable (ob Zahl oder nicht) try: a = int(z) return a except: print 'Falsche Eingabe,geben Sie eine Zahl an!' def eingabe(): #Eingabefunktion while True: j = raw_input('Geben Sie das Jahr an:') #Eingabe des Jahres j = zahlenproben(j) #Ueberpruefung mit zahlenprobe Funktion if j>2030 or j<1970: #Eingrenzung der Jahre zwischen 1970 und 2030 print 'Der Zeitraum der Jahre wird von 1970-2030 begrenzt.' else: zeit['j'] = j #Jahreszahl wird eingelesen break #Beenden der Schleife schaltjahr() #Ueberpruefen ob es ein Schaltjahr ist while True: #Eingabe des Monats m = raw_input('Geben Sie den Monat an:') m = zahlenproben(m) if m>12 or m<1: print 'Bitte geben Sie den Monat in Zahlen von 1-12 an!' else: zeit['m'] = m break while True: #Eingabe des Tages t = raw_input('Geben Sie den Tag an:') t = zahlenproben(t) if m in grossmonat: #Ueberpruefen ob es ein langer Monat ist if t>31 or t<1: print 'Bitte geben Sie den Tag in Zahlen von 1-31 an!' else: zeit['t'] = t break elif m in kleinemonat: #Ueberpruefung ob es ein kurzer Monat ist if t>30 or t<1: print 'Bitte geben Sie den Tag in Zahlen von 1-30 an!' else: zeit['t'] = t break else: #Anzahl der Tage des Februars bei Nicht-Schaltjahr if zeit['s'] ==0 : if t>28 or t<1: print 'Bitte geben Sie den Tag in Zahlen von 1-28 an!' else: zeit['t'] = t break else: if t>29 or t<1: #Anzahl der Tage des Februars bei Schaltjahr print 'Bitte geben Sie den Tag in Zahlen von 1-29 an!' else: zeit['t'] = t break def schaltjahr(): #Funktion zur Ueberpruefung ob es sich um ein Schaltjahr handelt if zeit['j']%4 == 0 or zeit['j']%400 == 0 and zeit['j']%100 != 0 : #In der Aufgabenstellung gegebene Berechnungsformel zeit['s'] = 1 #Schaltjahr else: zeit['s'] = 0 #Nicht-Schaltjahr def ausgabe(): #Funktion fuer die Ausgabe print ' Datum: %s-%s-%s' % (zeit['t'],zeit['m'],zeit['j']) #Ausgabe des Datums if zeit['s'] == 0: #kein Schaltjahr print '%s kein Schaltjahr!' %(zeit['j']) else: print '%s Schaltjahr!' %(zeit['j']) wochetag() #Start der Wochentagsfunktion def wochetag(): w = calendar.weekday(zeit['j'],zeit['m'],zeit['t']) #Kalendermodul wochetag = ['Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag','Sonntag'] #Liste der Wochentage print 'Dieser Tag ist ein %s' % (wochetag[w]) #Ausgabe des Wochentages #Main Funktion print "Willkommen!" #Titel print 'Dieses Programm kann die Schaltjahre und die Wochetage von dem von Ihnen gewaehlten Datum bestimmen.' print 'Zeitraum von 1970 bis 2030!' while True: eingabe() #Start der Eingabefunktion ausgabe() #Start de Ausgabefunktion s = raw_input('Moechten Sie dieses Programm noch einmal starten?(j/n)') #Soll das Programm erneut starten? if s == 'j' or s == 'J': #Eingabe ob ja pass elif s == 'n' or s == 'N': #oder nein break else: break #Beenden der Schleife