2015-03-11 13 views
5

İki adet datetime nesnesi eklemek istiyorum. i eklemek ve beni eklemek istiyorumİki datetime.datetime nesnesi nasıl eklenir?

>>> a+b 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
TypeError: unsupported operand type(s) for +: 'datetime.datetime' and 'datetime.datetime' 

hata verir b zaman

>>> from datetime import datetime 
>>> a = datetime.strptime("04:30",'%H:%M') 
>>> b = datetime.strptime("02:30",'%H:%M') 
>>> a 
datetime.datetime(1900, 1, 1, 4, 30) 
>>> b 
datetime.datetime(1900, 1, 1, 2, 30) 

i dan b çıkarma

, o bana çıktı

>>> a-b 
datetime.timedelta(0, 7200) 

verir ama b'nin zamanına a, yani bunu istiyorum.

datetime.datetime(1900, 1, 1, 7, 00) 

yardım lütfen?

+1

Tarihler eklemek anlamlı değildir. İstediğiniz çıktıyı beklemenin mantıklı bir nedeni yoktur (neden saat ve dakikalar eklenmeli, ancak yıllar, aylar ve günler eklenmemelidir?) – jonrsharpe

+2

Tarih eklerken mantıklı değildir, muhtemelen istediğiniz zaman bir zaman farkı eklemektir. bir zaman. Bu nedenle, 'b' datetime nesnesini değil, bir zaman çizelgesi nesnesi yapmalısınız. – physicalattraction

cevap

2

Önceki poster ile anlaşmak, iki nokta eklemek için anlamlı bir yol yoktur, çünkü sadece zaman içinde oldukları gibi, sadece aralarındaki farkla başa çıkabilir (zaman çizelgeleri). timedeltas gün, saniye ve mikrosaniye gösterince

>>> a = datetime.timedelta(0, (4*3600+30*60)) 
>>> b = datetime.timedelta(0, (2*3600+30*60)) 
>>> a+b 
datetime.timedelta(0, 25200) 
>>> print a+b 
7:00:00 

İhtiyacınız: açık bir şekilde örnekte tarih belirttiğini olmadığından, bu size başarmak için çalışıyoruz ne çizgisinde daha fazla olacağını gibi görünüyor saatlerini ve dakikayı doğru tabana ulaştırmak için.

İlgili konular