123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- # 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 begrenztet.'
- 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
|