Описание работы с классом clsDate. 1. Для работы с классом, его модуль необходимо экспортировать в разрабатываемый файл. 2. В функции необходимо создать экземпляр класса: Dim myClsDate As ClsDate Set myClsDate = New ClsDate 3. Далее необходимо задать классу дату, с которой он будет работать: With myClsDate .ValueDate = "01 янв 2000" '#1/18/2001# или переменная End With Дату можно задавать в том виде, в котором его способна распознать и преобразовать функция CDate(). 4. Желательно проверить, распознана ли переданное значение как дата: If .fCheckMyDate Then Функция .fCheckMyDate вернет True, если преобразование к типу Date прошло успешно, и False, если нет. 5. Считывая свойства класса, мы получим необходимое нам значение: .ValueDate - значение преобразованного к типу Date переданного аргумента, .AmericanFormat - строку в американском формате даты .RussianFormat - строку в русском формате даты .SQLFormat - строку в американском формате даты для подстановки в строку SQL в коде .FirstDayOfMonth - Дату первого дня месяца заданной даты .LastDayOfMonth - Дату последнего дня месяца заданной даты .FirstDayOfWeek - Дату первого дня недели заданной даты .LastDayOfWeek - Дату последнего дня недели заданной даты .Age - (Integer) - разницу лет между "сегодня" и заданной датой (возраст) .IsLeapYear - (Boolean) - Если год високосный - True, иначе False .FistDayOfQuarter - Дату первого дня квартала заданной даты .LastDayOfQuarter - Дату последнего дня квартала заданной даты .NumberQuarter - (Byte) - номер квартала заданной даты 6. По окончании работы с классом следует уничтожить ссылку на него: Set myClsDate = Nothing 7. Возможно последовательное использование свойств класса: Например для получения последнего дня месяца заданной даты в формате строки для подстановки в строку SQL 1. Задаем дату: With myClsDate .ValueDate = "01 янв 2000" 2. Проверяем: If .fCheckMyDate Then 3. Считываем свойство .LastDayOfMonth и задаем его в качестве новой даты классу: .ValueDate =.LastDayOfMonth 4. Считываем новое значение даты в нужном формате в строку: strMy=.SQLFormat End If End With 8. При необходимости расширить возможности класса новыми функциями, оформляем их в виде Public Property ReadOnly. Заключение. Задав один раз дату, мы получем небольшое "досье" на эту дату в виде свойств класса.