Calcul du numéro de semaine

Contenu du snippet

pour tout ceux qui veulent avoir une petite fonction, permettant de connaitre le numéro de semaine, en fonction d'une date.
Car, j'ai eu quelques surprises quant à l'utilisation de la fonction C#, qui ne fonctionne pas pour le 31/12/2007, et bien d'autres dates .....

Source / Exemple :


public int NumeroSemaine(DateTime ParamMaDate)
		{
			/* Norme internationale ISO-8601 : http://www.auduteau.net/calendar/cal5.shtml 
			  Cf. Paragraphe : 5.8 Comment calculer le numéro de semaine ? */
			int iNumSemaine;
			int iNumeroJourJulien = 0;
			int iCalculJuliena, iCalculJulieny, iCalculJulienm;
			int id1, id4, iL;
			// Calcul du numéro de semaine du calendrier Julien ...
			iCalculJuliena = (14 - ParamMaDate.Month) / 12;
			iCalculJulieny = ParamMaDate.Year + 4800 - iCalculJuliena;
			iCalculJulienm = ParamMaDate.Month + 12*iCalculJuliena - 3;
			iNumeroJourJulien = ParamMaDate.Day + (153*iCalculJulienm + 2)/5 + 365*iCalculJulieny
								+ iCalculJulieny/4 - iCalculJulieny/100 + iCalculJulieny/400
								- 32045;

			id4 = (iNumeroJourJulien+31741-(iNumeroJourJulien%7))%146097%36524%1461;
			iL = id4/1460;
			id1 = ((id4-iL)%365)+iL;
			// Calcul du numéro de semaine "classique" ...
			iNumSemaine = id1/7 + 1;
			return iNumSemaine ;
		}

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.