Привет всем.

Планируется ли реализация в FB_UDF функций определений дня недели (дня месяца)
DOW (DOM) ?

я нашёл такую (с моими переделками) и у меня есть вопрос.

дарю, прокатит даже на IB40 :)

CREATE PROCEDURE ElapsedDays(Date1 DATE, Date2 DATE)
RETURNS (Result INTEGER)
AS
BEGIN
 Result = Date2-Date1;
SUSPEND;
END
#

grant execute on procedure ElapsedDays to PUBLIC #

/* This procedure calculates the modulus of two number */
CREATE PROCEDURE Modulus(Dividend INTEGER, Divisor INTEGER)
RETURNS (Result INTEGER)
AS
BEGIN
 IF(Dividend = 0) THEN Result = 0;
 ELSE
   Result = Dividend-(CAST((Dividend / Divisor)-0.5 AS INTEGER)*Divisor);
SUSPEND;
END
#

grant execute on procedure Modulus to PUBLIC #

/* This procedure returns the number of the day of the week:
0 - Monday; 1 - Tuesday; 2 - Wdnesday; 3 - Thursday; 4 - Friday; 5 - Saturday; 6 - Sunday
*/
CREATE PROCEDURE DayOfWeek(ADate DATE)
RETURNS (Result INTEGER)
AS
DECLARE VARIABLE Elapsed INTEGER;
BEGIN
 EXECUTE PROCEDURE ElapsedDays('1.1.90', ADate) RETURNING_VALUES Elapsed;
 EXECUTE PROCEDURE Modulus(Elapsed, 7) RETURNING_VALUES Result;
SUSPEND;
END
#

grant execute on procedure DayOfWeek to PUBLIC #



--
Булычев Алексей
http://www.stella-npf.ru


Ответить