2015-03-27 5 views
0

Я перекручивание через пару datetime объектов и пытаюсь сосчитать пары, для которых d1 и d2 происходят в тот же день, но d2 происходит после d1.Возникли проблемы подсчета объектов DateTime, которые происходят в том же день, но один позже

if заявление:

if d1<= d2 and d1.date()==d2.date(): 
    count = count+1 

Не похоже, чтобы делать то, что я хочу.

Это не так?

+1

Ваше заявление выглядит правильно. Можете ли вы дать больше контекста? –

+1

Ваша логика правильная, однако 'd2' может возникать в то же время, что и' d1' по вашей логике. – taesu

ответ

2

тест будет корректно возвращать True если d1 и d2 равны или представляют собой ту же дату, но d1 раньше в этой даты, чем d2:

>>> from datetime import datetime, timedelta 
>>> d1 = datetime.now() 
>>> d2 = d1 + timedelta(minutes=20) # slightly later 
>>> d1 <= d2 
True 
>>> d1.date() == d2.date() 
True 
>>> d1 <= d2 and d1.date() == d2.date() 
True 
>>> d2 = d1 + timedelta(days=2) # days later 
>>> d1 <= d2 and d1.date() == d2.date() 
False 
>>> d2 = d1 - timedelta(minutes=20) # slightly earlier 
>>> d1 <= d2 and d1.date() == d2.date() 
False 

Другими словами, что-то еще неправильно ,