| 
			
				|  | 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.
 
 |  |