在Python 3中计算贷款的结束日期

时间:2018-02-15 18:00:03

标签: python python-3.x date slice

我正在开设一个类别的项目,其中(除其他事项外)我需要计算第一个付款日期的贷款结束日期,贷款期限(以年为单位)以及每年的付款数量。因此,例如,如果第一个付款日期是1/1/2018,并且每年有12个付款期,两年的利率,则贷款结束日期将是12/1/2019。我需要能够为用户输入的任何整数计算这个。付款期限可以是每季度4等等。

到目前为止,我已经开始输入输入的日期字符串(格式为DD / MM / YYYY)并将其拆分为“/”作为分隔符。然后我将每个部分转换为整数。

从这里我不知道该怎么办。到目前为止,我对Python的知识非常有限(我们刚刚开始了决策结构),所以我假设for循环对我来说最容易掌握。我不确定我是怎么开始这样的。任何人都能帮助我指出正确的方向吗?

以下代码。

first_date=input("Please enter the first payment date (DD/MM/YYYY):")

first_date.split("/")
month,day,year=first_date.split("/")
month=int(month)
day=int(day)
year=int(year)

1 个答案:

答案 0 :(得分:3)

您应该使用日期时间操作和运算符处理此问题,而不是通过文本处理。您可以使用datetimetime和类似的模块。

以下是一个示例工作流程:

In [40]: import datetime

# Input string
In [41]: first_date_str = '31/12/2018'

# Converting the input to a datetime object
In [42]: first_date_dt = datetime.datetime.strptime(first_date_str, '%d/%m/%Y')

# Let's check
In [43]: first_date_dt
Out[43]: datetime.datetime(2018, 12, 31, 0, 0)

# Adding 180 days
In [44]: first_date_dt + datetime.timedelta(days=180)
Out[44]: datetime.datetime(2019, 6, 29, 0, 0)

In [45]: last_date_dt = first_date_dt + datetime.timedelta(days=180)

# Converting datetime object back to string
In [46]: datetime.datetime.strftime(last_date_dt, '%d/%m/%Y')
Out[46]: '29/06/2019'

希望这会让你开始。