日期操作类型错误(日期时间包)

Posted

技术标签:

【中文标题】日期操作类型错误(日期时间包)【英文标题】:Type Error with operations with dates (datetime package) 【发布时间】:2022-01-20 09:55:12 【问题描述】:

我有这个代码:

 import datetime

 last_date = datetime.datetime(2021, 1, 15)
 first_date = datetime.datetime(2021, 1, 1)

 date_1 = last_date - first_date

 print(date_1) #this prints: 14 days, 00:00:00

 r=0.05

 fa = 1/(1+r)**(date_1/360)

 fa

我收到此错误:

TypeError:** 或 pow() 不支持的操作数类型:'float' 和 'datetime.timedelta'

我感兴趣的是天数,而不是小时数

【问题讨论】:

【参考方案1】:

date_1 是一个timedelta 对象,正如您所见,您不能将它除以float。 ]您可以使用days 属性从中提取天数:

fa = 1/(1+r)**(date_1.days/360)
# Here --------------^

【讨论】:

【参考方案2】:

date_1 是一个 datetime.timedelta 对象。您需要以整数形式获取天数。

import datetime

 last_date = datetime.datetime(2021, 1, 15)
 first_date = datetime.datetime(2021, 1, 1)

 date_1 = last_date - first_date

 print(date_1) #this prints: 14 days, 00:00:00

 r=0.05

 fa = 1/(1+r)**(date_1.days/360)

 fa

【讨论】:

以上是关于日期操作类型错误(日期时间包)的主要内容,如果未能解决你的问题,请参考以下文章

错误类型错误:无法读取未定义的属性“日期/时间”

DateTimeHelper日期类型与字符串互转以及日期对比相关操作

如何解决操作数类型冲突:日期与 int 不兼容

“条件表达式中的数据类型不匹配”错误将日期插入 Access 数据库中的日期/时间字段

转载 C#中日期类型DateTime的日期加减操作

DBF dBase - Where子句日期运算符/操作数类型不匹配错误