Python :: Aufgabe #39

2 Lösungen Lösungen öffentlich

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

Lösungen:

vote_ok
von devnull (8870 Punkte) - 21.02.2016 um 15:26 Uhr

Konsolenausgabe:

Erstes Datum : 01.01.2016
Zweites Datum: 21.02.2016
Die Zeitdifferenz beträgt 51 Tage.

Quellcode ausblenden Python-Code
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))
vote_ok
von ZRX88 (2770 Punkte) - 24.01.2017 um 14:33 Uhr
Die GUI und das Fehlerhanding habe ich mir gespart. Deswegen ist viel auskommentiert...

Quellcode ausblenden 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))