воскресенье, 8 января 2012 г.

Получение первого и последнего дня месяца на основе последнего дня предидущего месяца

В одном из проектов потребовалось автоматически увеличивать рабочий период на месяц после выполнения операций, и вот что из этого получилось :

#!/usr/bin/python
#-*- coding:utf-8 -*-
import datetime,calendar

def changePeriod(enddate):
    rt=[]
    delta=datetime.timedelta(days=1)
    enddate=enddate+delta
    rt.append(enddate)
    year,month,day=enddate.timetuple()[:3]
    countday=calendar.monthrange(year,month)[1]
    delta=datetime.timedelta(days=countday-1)
    enddate=enddate+delta
    rt.append(enddate)
    return rt


se=datetime.date(2011,10,31)
print changePeriod(se)

В функцию changePeriod передает дату последнего дня в виде объекта datetime на выходе получаем кортеж из двух элементов типом datetime содержащих первый и последний день следующего месяца

Виджет выбора даты (GTK)

В стандартном наборе виджетов GTK+ 2.xx нет управляемого виджета для вызова даты. Виджет gtk.Calendar нуждается в контейне верхнего уровня. В процессе создания аналога TDateEdit из библиотеки RxLib был создан следующий класс реализующий часть нужного мне функционала :