Разница времени и даты, чтобы вернуть только дни? - PullRequest
1 голос
/ 06 октября 2011
$ cat .t.py 
import re
from datetime import datetime as dtt

oldestDate = dateComp = dtt.strptime('1.1.1001', '%d.%m.%Y')
dateComp = dtt.strptime('11.1.2011', '%d.%m.%Y')
ind = re.sub(" days,.*", "", str((dateComp - oldestDate)))

print ind
print dateComp - oldestDate
$ python .t.py 
368905
368905 days, 0:00:00

Как получить дни только без запаха кода регулярного выражения?Проблема обостряется, потому что мне нужно использовать индекс во многих местах.Так какой-нибудь более чистый способ сделать это?

1 Ответ

2 голосов
/ 06 октября 2011

Не используйте str() так скоро. В результате вычитания одного datetime из другого вы получите объект timedelta, который имеет свойство .days, которое вы можете прочитать.

(dateComp - oldestDate).days

Обратите внимание, что чтение only свойства .days будет означать, что оно будет округлять разницу - если вы вместо этого хотите округлить до ближайшего числа дней, вам нужно добавить некоторую логику в проверьте свойство .seconds, чтобы увидеть, ближе ли оно к 0 или 86400.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...