Найти - Пользователи
Полная версия: как получить разницу во времени в месяцах..
Начало » Python для новичков » как получить разницу во времени в месяцах..
1
goblin_maks
есть дата…2008.10.02 00:10:23.00741 и есть вторая…2008.09.29 00:45:23.00321..надо отбросить число месяца и временную часть и посчитать разницу месяцев…здесь разница дат будет 1 месяц..даты получены из ДБ оракл через for … а.fetchall():
Dimka665
самый простой вариант, без использовать datetime, timedelta.
s = lambda s: int(s.split('.')[1])
s(d1) - s(d2)
hellslade
Dimka665
Можно маленько допинать :)
s = lambda d1,d2: int(d1.split('.')) - int(d2.split('.'))+(int(d1.split('.'))-int(d2.split('.')))*12
s(d1,d2)
Dimka665
hellslade
Dimka665
Можно маленько допинать :)
s = lambda d1,d2: int(d1.split('.')) - int(d2.split('.'))+(int(d1.split('.'))-int(d2.split('.')))*12
s(d1,d2)
тогда уж так:
s = lambda s, i: int(s.split('.')[i])
(s(d1, 0) - s(d2, 0))*12 + s(d1, 1) - s(d2, 1)
goblin_maks
ого..пасиб ребята…ща тестить буду..
а если с использованием datetime…fetchall возвращаеет мне в datetime.datetime.. хотя наверное проще то что он возвращает в строку разобрать..
j2a
Предложенные ребятами варианты плохи. Слишком perlish ;)

>>> def months(d1, d2):
...: return d1.month - d2.month + 12*(d1.year - d2.year)

>>> d1 = datetime.datetime(2008, 10, 2, 00, 10, 23)
>>> d2 = datetime.datetime(2008, 9, 29, 00, 45, 23)
>>> d3 = datetime.datetime(2009, 1, 1)

>>> months(d1, d2)
<<< 1
>>> months(d3, d2)
<<< 4
>>> months(d3, d1)
<<< 3
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB