2017-02-15 2 views
0

Ich versuche, zwei Daten als Eingabe zu erhalten und konvertieren ist Epoche Zeit, aber ich brauche die zwei verschiedenen Daten als Eingabe angegeben im korrekten Format validiert werden, ansonsten rekursiv nach korrekter Eingabe fragen.Wie rekursiv nach Eingabe fragen, wenn falsches Datumsformat für zwei rohe Eingabe gegeben und die Operation in Python fortsetzen

from datetime import date 

import datetime 

start_date = datetime.datetime.strptime(raw_input('Enter Start date in the format DD-MM-YYYY: '), '%d-%m-%Y') 
end_date = datetime.datetime.strptime(raw_input('Enter Start date in the format DD-MM-YYYY: '), '%d-%m-%Y') 
epoch_date = datetime.datetime(1970,1,1) 

diff1 = (start_date - epoch_date).days 
diff2 = (end_date - epoch_date).days 

epoch1 = (diff1 * 86400) 
epoch2 = (diff2 * 86400) 

print('\nPTime_Start: %i' % diff1), 
print("&"), 
print('PTime_End: %i' % diff2) 

print('Epoch_Start: %i' % epoch1), 
print("&"), 
print('Epoch_End: %i' % epoch2) 

Antwort

0

Zunächst einmal sind Sie mit Python 3.x und Python 3.x keine Funktion haben, die "raw_input()" genannt wird. Es wurde zu "input()" geändert.

def take_date_input(): 
    input_date = input('Enter date in the format DD-MM-YYYY: ') 
    try: 
     one_date = datetime.datetime.strptime(input_date, '%d-%m-%Y') 
    except ValueError: 
     return take_date_input() 
    return one_date 

Sie können dies tun, wenn Sie wirklich rekursiv in Ihrem Code möchten, aber es wäre besser mit While-Schleife.

Verwandte Themen