当给出两个原始输入的错误日期格式时如何递归地询问输入并继续python中的操作

时间:2017-02-15 09:21:02

标签: python-3.x

我正在尝试将两个日期作为输入并且转换是纪元时间,但我需要将两个不同的日期作为输入以正确的格式进行验证,否则递归地请求正确的输入。

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)

1 个答案:

答案 0 :(得分:0)

首先,您使用的是Python 3.x和Python 3.x没有任何名为“raw_input()”的函数。它已被更改为“input()”。

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

如果您真的希望在代码中使用递归,则可以执行此操作,但使用while循环会更好。