Я пишу функцию, чтобы спросить пользователя о дате. Я бы хотел, чтобы пользователь мог вводить дату в привычном формате: ММ-ДД-ГГГГ
Я пробовал несколько вариантов, но не смог вычислить разницу в днях при расчете дельты. Мои попытки вернули ряд ошибок, в основном из-за того, что я не могу передать аргументы str при попытке вычислить разницу.
Каков наилучший способ получить ввод даты в формате MM-DD-YYYY при вычитании .today(), который возвращает YYYY-MM-DD, в конечном итоге возвращая количество дней между двумя датами?
Спасибо за любой вклад! (с использованием .PY 3.6)
Примечание: приведенный ниже код РАБОТАЕТ, но не учитывает соглашение о форматировании даты в США.
def get_days_since_last_app():
then = datetime.strptime(input("What is the date of your last credit "
"card application? e.g. YYYY-MM-DD - 2017-07-26 "), '%Y-%m-%d')
today = datetime.today()
delta = then - today
print(abs(delta.days))
return abs(delta)
Вот код, который НЕ работает, когда пользователь может вводить дату в формате MM-DD-YYYY. Я безуспешно пробовал использовать обе переменные между int и str.
Error:
TypeError: unsupported operand type(s) for -: 'datetime.datetime' and 'str'
Code:
def get_days_since_last_app():
then = datetime.strptime(input("What is the date of your last credit "
"card application? e.g. MM-DD-YYYY - 07-26-2017 "),
'%m-%d-%Y')
today = arrow.now().format('MM-DD-YYYY')
delta = then - today
print(arrow.now().format('MM-DD-YYYY'))
print(delta)
print(abs(delta.days))
return abs(delta)
'%Y-%m-%d'
- person Chuk Ultima   schedule 22.02.2018My attempts have returned a number of errors
— это то, что сказал бы пользователь, а не то, что сказал бы программист. - person jsotola   schedule 22.02.2018