ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Obter o número da semana do ano
Ir à página Anterior  1, 2
 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
lucasc
Membro Junior
Membro Junior


Registrado: Quinta-Feira, 10 de Mai de 2007
Mensagens: 305

MensagemEnviada: Qua Jan 11, 2023 9:42 am    Assunto: Responder com Citação

Bom dia Imex,

Constatei que a rotina está retornando um número de semana errado, exemplo: dia 06/01/2023 deveria retornar semana núemro 2, e está retornando número 1.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
lucasc
Membro Junior
Membro Junior


Registrado: Quinta-Feira, 10 de Mai de 2007
Mensagens: 305

MensagemEnviada: Sex Jan 13, 2023 8:53 am    Assunto: [Resolvido] Responder com Citação

Prezados,

Resolvi da seguinte forma:

Código:

CREATE OR ALTER PROCEDURE PGET_NUMEROSEMANA(PDATA DATE, PINICIO_SEMANA SMALLINT) RETURNS (NUMEROSEMANA SMALLINT) AS
DECLARE VARIABLE VDATAINICIO DATE;
DECLARE VARIABLE VNUMEROSEMANA SMALLINT;
BEGIN
   VNUMEROSEMANA = 1;
   VDATAINICIO = CAST('01.01.'||EXTRACT(YEAR FROM :PDATA) AS DATE);
   WHILE (VDATAINICIO <=PDATA) DO
   BEGIN
    IF ((SELECT EXTRACT(WEEKDAY FROM :VDATAINICIO) FROM RDB$DATABASE) = :PINICIO_SEMANA) THEN
    VNUMEROSEMANA = VNUMEROSEMANA+1;
    VDATAINICIO   = VDATAINICIO+1;
   END
   NUMEROSEMANA = VNUMEROSEMANA;
   SUSPEND;
END;
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados Todos os horários são GMT - 3 Horas
Ir à página Anterior  1, 2
Página 2 de 2

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB