воскресенье, 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 был создан следующий класс реализующий часть нужного мне функционала :

суббота, 29 октября 2011 г.

вторник, 4 октября 2011 г.

Получение 1 дня месяца в FireBird 2.1

Для одного из проектов понадобилось получать 1 день месяца из любой переданой в функцию даты. До начала использования Firebird 2.1 даная проблема решалась использованием udf из библиотеки rfunc. 

среда, 28 сентября 2011 г.

Настройка OpenVPN на примере UBUNTU

Понадобилось как то раз сделать распределенную локальную сеть поверх общедоступной (vpn от провайдера конечно было бы лучше но и дороже а руководство поставило жесткие лимиты по деньгам). 

четверг, 30 июня 2011 г.

Вычисление CRC16 на Python

Для драйвера весов Mettler Toledo понадобилось рассчитывать CRC16 блока,
так как драйвер я делаю на Python то и расчет логично было сделать на нем же. В результате получилось нижеследующее :