Python :: Aufgabe #39
2 Lösungen

Zeit zwischen zweier Tage
Anfänger - Python
von Dome
- 10.03.2013 um 23:50 Uhr
Erstellen Sie ein Programm, mit dem man die Zeitdifferenz zwischen zwei Tagen bestimmen kann. Hierzu muss man beide Tage eingeben und das Programm gibt die Zeitdifferenz aus.
Je nach Schwierigkeitsgrad:
Eingabe der Daten per Konsole oder GUI, eine Art Dropdown-Menü oder ähnliches
Ausgabe der Differenz in mehreren "Zeitformen", Tage, Monate, Jahre, Minuten, Stunden
Eingabe von Uhrzeiten, die jeweils in die Berechnung einfließen
Je nach Schwierigkeitsgrad:
Eingabe der Daten per Konsole oder GUI, eine Art Dropdown-Menü oder ähnliches
Ausgabe der Differenz in mehreren "Zeitformen", Tage, Monate, Jahre, Minuten, Stunden
Eingabe von Uhrzeiten, die jeweils in die Berechnung einfließen
Lösungen:
Konsolenausgabe:
Erstes Datum : 01.01.2016
Zweites Datum: 21.02.2016
Die Zeitdifferenz beträgt 51 Tage.

import datetime def get_datum(prompt): ok = False while not ok: try: indatum = input(prompt) datum = datetime.datetime.strptime(indatum, "%d.%m.%Y") ok = True except ValueError: print("Ungültiges Datumsformat.") return datum datum_1 = get_datum("Erstes Datum : ") datum_2 = get_datum("Zweites Datum: ") tage = datum_2 - datum_1 print("Die Zeitdifferenz beträgt {:d} Tage.".format(tage.days))
Die GUI und das Fehlerhanding habe ich mir gespart. Deswegen ist viel auskommentiert...
Python-Code

import datetime method = 'seconds' input1 = '2016-12-12 22:11:12' input2 = '2016-12-13 12:12:12' # only DATES: # Format = '%Y-%m-%d' # with hours, minutes and seconds Format = '%Y-%m-%d %H:%M:%S' # alternative input = current date. # input2 = datetime.date.today().__str__() # input1 = raw_input('please enter the first date. in the Format YYYY-MM-DD') # input2 = raw_input('please enter the second date. in the Format YYYY-MM-DD') timedelta =datetime.datetime.strptime(input1, Format) - datetime.datetime.strptime(input2, Format) if method == 'seconds': print(timedelta.total_seconds()) elif method == 'minutes': print(int(timedelta.total_seconds()/60)) elif method == 'hours': print(int(timedelta.total_seconds()/3600)) elif method == 'days': print(int(timedelta.total_seconds()/3600/24)) elif method == 'weeks': print(int(timedelta.total_seconds()/3600/24/7)) elif method == 'months': print(int(timedelta.total_seconds()/3600/24/7/30))