[firebase-br] Funcao para Incremento de Meses

Magno System magno em speet.com.br
Seg Out 30 17:41:38 -03 2006


CREATE PROCEDURE PROC_INCMONTH (
    DATA DATE,
    NUMEROMESES INTEGER)
RETURNS (
    RESULT DATE)
AS
DECLARE VARIABLE DIA INTEGER;
DECLARE VARIABLE MES INTEGER;
DECLARE VARIABLE ANO INTEGER;
DECLARE VARIABLE AUXILIAR INTEGER;
begin
  DIA=EXTRACT(DAY FROM :DATA);
  MES=EXTRACT(MONTH FROM :DATA);
  ANO=EXTRACT(YEAR FROM :DATA);
  if (MES + NUMEROMESES > 12) then
  BEGIN
     WHILE ((MES + NUMEROMESES) > 12) DO
     BEGIN
        NUMEROMESES = NUMEROMESES - 12;
        ANO = ANO + 1;
     END
     MES = MES + NUMEROMESES;
  END
  ELSE
     MES = MES + NUMEROMESES;
  if ((MES = 4) or (MES = 6) or (MES = 9) or (MES = 11)) then
     if (DIA = 31) THEN
        DIA = 30;
  if (MES = 2)  then
  BEGIN
     AUXILIAR = 2004;
     WHILE (AUXILIAR < ANO) DO
        AUXILIAR = AUXILIAR + 4;
     if (AUXILIAR = ANO) then
     BEGIN
        if ((DIA = 31) or (DIA = 30)) then
           DIA = 29;
     END
     ELSE
     BEGIN
        if ((DIA = 31) or (DIA = 30) or (DIA = 29)) then
           DIA = 28;
     END
  END
  RESULT = MES || '/' || DIA || '/' || ANO;
  suspend;
end




----- Original Message ----- 
From: "Murilo >>> CPR Sistemas" <murilo em cprinformatica.com.br>
To: <lista em firebase.com.br>
Sent: Monday, October 30, 2006 11:18 AM
Subject: [firebase-br] Funcao para Incremento de Meses


>O Firebird tem algum comando para realizar o incremento de meses, ou só com 
>função externa?
>
> Alguém tem alguma procedure que o faça e queira compartilhar, não quero 
> usar UDF's...
>
>
>
> ______________________________
> Murilo Garcia Bento
> CPR Sistemas
>
>
>
>


--------------------------------------------------------------------------------


______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para editar sua configuração na lista, use o endereço 
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa


--------------------------------------------------------------------------------


No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.1.408 / Virus Database: 268.13.17/505 - Release Date: 27/10/2006





Mais detalhes sobre a lista de discussão lista