Содержание
RoundMonth6(X : DateTime) : DateTime
Выровнять на полугодие
Функция RoundMonth6 выравнивает дату-время X на полугодие. После её выполнения год остается неизменным, месяцы заменяются:
• Янв, Фев, Март, Апр, Май, Июнь => Янв
• Июль, Авг, Сен, Окт, Ноя, Дек => Июль
, число месяца изменяется на первое, время изменяется на полночь (0:0:0.0).
Пример:Procedure OnCreate; Var DT : DateTime; Begin DT := EncodeDate(1991, 11, 21, 12, 45, 55, 423); Warning('Исходная ' + ToStr( DT )); // 21-11-1991 12:45:55.423 Warning('День ' + ToStr(RoundDay (DT))); // 21-11-1991 Warning('Неделя ' + ToStr(RoundWeek (DT))); // 18-11-1991 Warning('Месяц ' + ToStr(RoundMonth (DT))); // 1-11-1991 Warning('Квартал ' + ToStr(RoundMonth3(DT))); // 1-10-1991 Warning('Полугодие ' + ToStr(RoundMonth6(DT))); // 1-07-1991 Warning('Год ' + ToStr(RoundYear (DT))); // 1-01-1991 End;Пример SQL:
Select RoundDay(Now()), RoundWeek(Now()), RoundMonth(Now()), RoundMonth3(Now()), RoundMonth6(Now()), RoundYear(Now())
Набор этих функций применяется для расчета отчетов. Например суммы продаж по полугодиям:
Select D, Sum(Summa) From Documents Group By RoundMonth6(X) As D
Смотри функции RoundDay, RoundWeek, RoundMonth, RoundMonth3, RoundYear.