[firebase-br] FB 1.0 e função MOD

HPensador hpensador em gmail.com
Qui Abr 2 09:35:29 -03 2009


Bom dia Magno!

Obrigado por sua atenção...
Bem conversando com um colega aqui na empresa acabamos chegando a essa 
função para o FB 1.0 (testada e funcionando 100%):

CREATE PROCEDURE BISEXTO (
     ano integer)
returns (
     resultado smallint)
as
declare variable mod_4 integer;
declare variable mod_100 integer;
declare variable mod_400 integer;
BEGIN
   SELECT :ANO - (CAST(:ANO/4 AS INTEGER) * 4) FROM RDB$DATABASE INTO 
:MOD_4;
   SELECT :ANO - (CAST(:ANO/100 AS INTEGER) * 100) FROM RDB$DATABASE 
INTO :MOD_100;
   SELECT :ANO - (CAST(:ANO/400 AS INTEGER) * 400) FROM RDB$DATABASE 
INTO :MOD_400;

   IF (((:MOD_4 = 0) AND (:MOD_100 <> 0)) OR (:MOD_400 = 0))  THEN
     RESULTADO = 1;
   ELSE
     RESULTADO = 0;
   SUSPEND;
END

Pronto... agora se algum colega precisar esta aí prontinha - é só usar.

-- 
[]'s,

Hélio Oliveira
Analista de Sistemas
Delphi Developer
http://hpensador.blogspot.com/
(71) 9975-9176





Mais detalhes sobre a lista de discussão lista