Здравствуйте, Alex.
> Правнуки опубликуют результаты? ;о)
А что, прикольненько так получается...
EXECUTE BLOCK
RETURNS(BEGIN_DATE DATE,
YEAR_DAY SMALLINT,
WEEK_DAY SMALLINT,
FN_WEEK SMALLINT,
CURRENT_WEEK SMALLINT)
AS
DECLARE VARIABLE END_DATE DATE;
BEGIN
BEGIN_DATE = '01.01.1001';
END_DATE = '31.12.2999';
CURRENT_WEEK = 1;
WHILE (BEGIN_DATE <= END_DATE) DO
BEGIN
YEAR_DAY = EXTRACT(YEARDAY FROM BEGIN_DATE);
WEEK_DAY = EXTRACT(WEEKDAY FROM BEGIN_DATE);
FN_WEEK = (YEAR_DAY - WEEK_DAY + 6) / 7 + 1;
IF (YEAR_DAY = 0) THEN
CURRENT_WEEK = 1;
ELSE
IF (WEEK_DAY = 0) THEN
CURRENT_WEEK = CURRENT_WEEK + 1;
IF (CURRENT_WEEK <> FN_WEEK) THEN
SUSPEND;
BEGIN_DATE = BEGIN_DATE + 1;
END
END
ЗЫ: Это не правнук :D
--
С уважением,
Пиминов Роман