写了我的第一个Python程序,会欣赏用户输入递增的输入

时间:2018-02-22 07:23:51

标签: python date difference delta

我正在编写一个函数来询问用户的日期。我希望用户能够以熟悉的格式输入日期:MM-DD-YYYY

我尝试过多种变体,但却未能成功计算增量计算中的天数差异。我的尝试已经返回了许多错误,主要是我在尝试计算差异时无法传递str参数。

在MM-DD-YYYY中输入日期输入的最佳方法是什么,同时减去返回YYYY-MM-DD的.today(),最终返回两个日期之间的天数?

感谢您的所有输入! (使用.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&s和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)

1 个答案:

答案 0 :(得分:1)

def get_days_since_last_app():
    then = pd.to_datetime(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 = pd.to_datetime(datetime.now().strftime('%Y-%m-%d'))
    delta = (then - today)
    print(delta.days)

我尝试根据问题编写代码。这是你正在寻找的吗?