![](/img/trans.png)
[英]Python Error : unsupported operand type(s) for +: 'int' and 'datetime.timedelta'
[英]unsupported operand type(s) for %: 'datetime.timedelta' and 'int'
我的python代碼如下:
if ( delta % 24 == 0):
print "ONE DAY "
它給出錯誤為TypeError:%不支持的操作數類型:“ datetime.timedelta”和“ int”
delta is of type datetime.timedelta
請分享您的輸入以解決此錯誤。 根據項目要求使用pyton 2.7
DateTime
不支持取模,因此會看到錯誤。
不過,這種對日期時間的Python模支持 。
此外,您可以強制轉換第二個操作數,以便消除錯誤:
if ( ( d % timedelta(minutes = 24) ) == 0):
print("ONE DAY")
在Python 3.6.1中有效。
編輯:
這不適用於Python 2.7.0,已針對OP的問題進行了編輯。 在這種情況下,這可能會有所幫助: 在python中操作DateTime和TimeDelta對象 。
怎樣閱讀datetime.timedelta
的文檔呢? 甚至只是在您的python shell中進行測試:
>>> d = datetime.timedelta(hours=24)
>>> d
datetime.timedelta(1)
>>> dir(d)
['__abs__', '__add__', '__class__', '__delattr__', '__div__', '__doc__', '__eq__', '__floordiv__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__mul__', '__ne__', '__neg__', '__new__', '__nonzero__', '__pos__', '__radd__', '__rdiv__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__rmul__', '__rsub__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', 'days', 'max', 'microseconds', 'min', 'resolution', 'seconds', 'total_seconds']
>>> d.days
1
>>> d = datetime.timedelta(hours=8)
>>> d.days
0
如您所見,您已經掌握了信息。
請注意,如果您需要基於小時(而不是天)的其他計算,則需要使用delta.seconds / (60 * 60)
-出於某些原因,我不明白沒有人會考慮添加hours
或minutes
timedelta
屬性...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.