|
ActiveDelphi .: O site do programador Delphi! :.
|
Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
lucasc Membro Junior
Registrado: Quinta-Feira, 10 de Mai de 2007 Mensagens: 305
|
Enviada: Qua Jan 11, 2023 9:42 am Assunto: |
|
|
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 |
|
|
lucasc Membro Junior
Registrado: Quinta-Feira, 10 de Mai de 2007 Mensagens: 305
|
Enviada: Sex Jan 13, 2023 8:53 am Assunto: [Resolvido] |
|
|
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 |
|
|
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|