Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 10, 2008 12:26:34

goblin_maks
От:
Зарегистрирован: 2008-12-10
Сообщения: 110
Репутация: +  0  -
Профиль   Отправить e-mail  

как получить разницу во времени в месяцах..

есть дата…2008.10.02 00:10:23.00741 и есть вторая…2008.09.29 00:45:23.00321..надо отбросить число месяца и временную часть и посчитать разницу месяцев…здесь разница дат будет 1 месяц..даты получены из ДБ оракл через for … а.fetchall():



Офлайн

#2 Дек. 10, 2008 12:46:50

Dimka665
От:
Зарегистрирован: 2008-09-19
Сообщения: 177
Репутация: +  0  -
Профиль   Отправить e-mail  

как получить разницу во времени в месяцах..

самый простой вариант, без использовать datetime, timedelta.

s = lambda s: int(s.split('.')[1])
s(d1) - s(d2)



Офлайн

#3 Дек. 10, 2008 12:57:03

hellslade
От:
Зарегистрирован: 2008-01-28
Сообщения: 240
Репутация: +  0  -
Профиль   Отправить e-mail  

как получить разницу во времени в месяцах..

Dimka665
Можно маленько допинать :)
s = lambda d1,d2: int(d1.split('.')) - int(d2.split('.'))+(int(d1.split('.'))-int(d2.split('.')))*12
s(d1,d2)



Офлайн

#4 Дек. 10, 2008 13:20:25

Dimka665
От:
Зарегистрирован: 2008-09-19
Сообщения: 177
Репутация: +  0  -
Профиль   Отправить e-mail  

как получить разницу во времени в месяцах..

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)



Офлайн

#5 Дек. 10, 2008 14:02:18

goblin_maks
От:
Зарегистрирован: 2008-12-10
Сообщения: 110
Репутация: +  0  -
Профиль   Отправить e-mail  

как получить разницу во времени в месяцах..

ого..пасиб ребята…ща тестить буду..
а если с использованием datetime…fetchall возвращаеет мне в datetime.datetime.. хотя наверное проще то что он возвращает в строку разобрать..



Отредактировано (Дек. 10, 2008 14:09:49)

Офлайн

#6 Дек. 10, 2008 19:17:16

j2a
От:
Зарегистрирован: 2006-06-29
Сообщения: 869
Репутация: +  1  -
Профиль   Отправить e-mail  

как получить разницу во времени в месяцах..

Предложенные ребятами варианты плохи. Слишком 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



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version