Schaltjahre.py 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. # Simon Pense, Jeremy Gabrysch, Yulong Chunyu
  2. #!/usr/bin/python
  3. import time #Module werden importiert
  4. import calendar
  5. zeit = {'j':0,'m':0,'t':0,'s':0} #globale Variablen fuer Zeit
  6. grossmonat = [1,3,5,7,8,10,12] #Lange Monate
  7. kleinemonat = [4,6,7,9,11] #kurze Monate
  8. def zahlenproben(z): #Funktion zum Testen der eingegebenen Variable (ob Zahl oder nicht)
  9. try:
  10. a = int(z)
  11. return a
  12. except:
  13. print 'Falsche Eingabe,geben Sie eine Zahl an!'
  14. def eingabe(): #Eingabefunktion
  15. while True:
  16. j = raw_input('Geben Sie das Jahr an:') #Eingabe des Jahres
  17. j = zahlenproben(j) #Ueberpruefung mit zahlenprobe Funktion
  18. if j>2030 or j<1970: #Eingrenzung der Jahre zwischen 1970 und 2030
  19. print 'Der Zeitraum der Jahre wird von 1970-2030 begrenztet.'
  20. else:
  21. zeit['j'] = j #Jahreszahl wird eingelesen
  22. break #Beenden der Schleife
  23. schaltjahr() #Ueberpruefen ob es ein Schaltjahr ist
  24. while True: #Eingabe des Monats
  25. m = raw_input('Geben Sie den Monat an:')
  26. m = zahlenproben(m)
  27. if m>12 or m<1:
  28. print 'Bitte geben Sie den Monat in Zahlen von 1-12 an!'
  29. else:
  30. zeit['m'] = m
  31. break
  32. while True: #Eingabe des Tages
  33. t = raw_input('Geben Sie den Tag an:')
  34. t = zahlenproben(t)
  35. if m in grossmonat: #Ueberpruefen ob es ein langer Monat ist
  36. if t>31 or t<1:
  37. print 'Bitte geben Sie den Tag in Zahlen von 1-31 an!'
  38. else:
  39. zeit['t'] = t
  40. break
  41. elif m in kleinemonat: #Ueberpruefung ob es ein kurzer Monat ist
  42. if t>30 or t<1:
  43. print 'Bitte geben Sie den Tag in Zahlen von 1-30 an!'
  44. else:
  45. zeit['t'] = t
  46. break
  47. else: #Anzahl der Tage des Februars bei Nicht-Schaltjahr
  48. if zeit['s'] ==0 :
  49. if t>28 or t<1:
  50. print 'Bitte geben Sie den Tag in Zahlen von 1-28 an!'
  51. else:
  52. zeit['t'] = t
  53. break
  54. else:
  55. if t>29 or t<1: #Anzahl der Tage des Februars bei Schaltjahr
  56. print 'Bitte geben Sie den Tag in Zahlen von 1-29 an!'
  57. else:
  58. zeit['t'] = t
  59. break
  60. def schaltjahr(): #Funktion zur Ueberpruefung ob es sich um ein Schaltjahr handelt
  61. if zeit['j']%4 == 0 or zeit['j']%400 == 0 and zeit['j']%100 != 0 : #In der Aufgabenstellung gegebene Berechnungsformel
  62. zeit['s'] = 1 #Schaltjahr
  63. else:
  64. zeit['s'] = 0 #Nicht-Schaltjahr
  65. def ausgabe(): #Funktion fuer die Ausgabe
  66. print ' Datum: %s-%s-%s' % (zeit['t'],zeit['m'],zeit['j']) #Ausgabe des Datums
  67. if zeit['s'] == 0: #kein Schaltjahr
  68. print '%s kein Schaltjahr!' %(zeit['j'])
  69. else:
  70. print '%s Schaltjahr!' %(zeit['j'])
  71. wochetag() #Start der Wochentagsfunktion
  72. def wochetag():
  73. w = calendar.weekday(zeit['j'],zeit['m'],zeit['t']) #Kalendermodul
  74. wochetag = ['Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag','Sonntag'] #Liste der Wochentage
  75. print 'Dieser Tag ist ein %s' % (wochetag[w]) #Ausgabe des Wochentages
  76. #Main Funktion
  77. print "Willkommen!" #Titel
  78. print 'Dieses Programm kann die Schaltjahre und die Wochetage von dem von Ihnen gewaehlten Datum bestimmen.'
  79. print 'Zeitraum von 1970 bis 2030!'
  80. while True:
  81. eingabe() #Start der Eingabefunktion
  82. ausgabe() #Start de Ausgabefunktion
  83. s = raw_input('Moechten Sie dieses Programm noch einmal starten?(j/n)') #Soll das Programm erneut starten?
  84. if s == 'j' or s == 'J': #Eingabe ob ja
  85. pass
  86. elif s == 'n' or s == 'N': #oder nein
  87. break
  88. else:
  89. break #Beenden der Schleife