среда, 17 ноября 2010 г.

Определение даты отстоящей на определенное число дней, месяцев и лет от заданной

Очень полезная функция для определения даты, отстоящей на определенное число дней, месяцев и лет от заданной.

import time, datetime
from dateutil.relativedelta import relativedelta

def time_ago(date,delta_date):
  spl_date=date.split('.');
  spl_delta_date=delta_date.split('.');
  day=int(spl_date[0]);month=int(spl_date[1]);year=int(spl_date[2]);
  d_date = datetime.date(year,month,day);
  delta = relativedelta(days=int(spl_delta_date[0]),months=int(spl_delta_date[1]),years=int(spl_delta_date[2]));
  d_result=d_date+delta;
  return d_result.strftime('%d.%m.%Y');


Примеры использования:

>>time_ago('1.1.2010','-1.0.-1')
>>'31.12.2008'

Здесь '31.12.2008' - исходная дата, '-1.0.-1' - указание найти день на один год и один день раньше.

Комментариев нет:

Отправить комментарий