[oracle]déterminer la date du premier jour d'une semaine par le numéro de semaine

Contenu du snippet

Déterminer la date du premier jour d'une semaine par le numéro de semaine.

Le principe est de déterminer le premier lundi de l'année pour l'additionner au nombre de semaine * 7

Source / Exemple :


--------------------------------------------------------------------------------------------------------------
-- Retrieve first date of week 
--------------------------------------------------------------------------------------------------------------

FUNCTION getFirstDateOfWeek(vi_week_number IN  INTEGER,
		 					vi_year		   IN  INTEGER)
                            RETURN DATE
IS
v_first_monday_of_the_year INTEGER;
v_value INTEGER;

BEGIN

v_first_monday_of_the_year := -1;
v_value := 0;

	WHILE v_value <> 2 /*Find first Monday*/
	LOOP
	  	  v_first_monday_of_the_year := v_first_monday_of_the_year + 1; 
		  v_value := TO_CHAR(TO_DATE(vi_year || '0101', 'YYYYMMDD') + v_first_monday_of_the_year, 'D');	
	END LOOP;	  
	
	RETURN TO_DATE(vi_year || '0101', 'YYYYMMDD')+(v_first_monday_of_the_year + (7 * (vi_week_number - 2)));
	
END;

Conclusion :


Pas trouvé d'équivalent sur le Net, du coup je publie mon source

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.