N° du jour (a la façon d'excel)

Soyez le premier à donner votre avis sur cette source.

Snippet vu 6 859 fois - Téléchargée 37 fois

Contenu du snippet

la fonction DateDuJour vous permet de retrouver le n° d'ordre du jour depuis 1900, comme Excel.

a++

Source / Exemple :


Function DateDuJour(Valeur)
	dim Année
	dim Mois
	dim Jour
	dim NbJour
	dim NbAnBissex
	dim BissexF
	dim BissexI
	dim Bissex
	
	Année=(year(Valeur)-1900)*365
	Mois=SommeJourMois(month(Valeur))
	Jour=day(Valeur)
	
	NbJour=Année+Mois+Jour
	
	'Pb des années bissextiles
	'Combien d'années bissextiles ?
	' Je ne m'occupe pas de 2000, car 2000 est div par 400, donc bissextile !
	
	NbAnBissex=(year(Valeur)-1901)/4 ' 1900 est div. par 4 mais pas bissex.
	NbJour=NbJour+NbanBissex '+1
	
	'Est-on dans une année bissextile ?
	if mid(cstr(year(Valeur)),3,2)="00" then ' un début de siècle ...
		BissexF=year(Valeur)/400
		BissexI=int(year(Valeur))/400
		if (month(valeur)>2) and ((BissexF)=(BissexI)) then
			Bissex=1
		elseif (Month(valeur)<3) and ((BissexF)=(BissexI)) then
			Bissex=0
		else
			Bissex=1
		end if
	else
		BissexF=year(Valeur)/4
		BissexI=int(year(Valeur)/4)
		if (month(valeur)>2) and ((BissexF)=(BissexI)) then
			Bissex=1
		elseif (Month(valeur)<3) and ((BissexF)=(BissexI)) then
			Bissex=0
		else
			Bissex=1
		end if
	end if
	DateDuJour=NbJour+Bissex
end function
Function SmmeJourMois(Valeur)
	Select case Valeur
	case 1:
		SommeJourMois=0
	case 2:
		SommeJourMois=31
	case 3:
		SommeJourMois=59
	case 4:
		SommeJourMois=90
	case 5:
		SommeJourMois=120
	case 6:
		SommeJourMois=151
	case 7:
		SommeJourMois=181
	case 8:
		SommeJourMois=212
	case 9:
		SommeJourMois=243
	case 10:
		SommeJourMois=273
	case 11:
		SommeJourMois=304
	case 12:
		SommeJourMois=334
	case else:
		SommeJourMois=-99999
	end select
end function%>

A voir également

Ajouter un commentaire

Commentaires

cs_glad
Messages postés
97
Date d'inscription
lundi 26 novembre 2001
Statut
Membre
Dernière intervention
24 février 2012

Heu et bien merci, j'en prends bonne note :-)
LleWellA
Messages postés
37
Date d'inscription
mardi 18 juin 2002
Statut
Membre
Dernière intervention
28 juin 2007

Salut,

Juste une petite remarque pour 'optimisé' le code.
En ce qui concerne le calcul d'une année bisextile y a plus rapide ...
comme ceci :

function isBissextile(an) { return ((( an % 4 == 0 ) && ( an % 100 != 0 || an % 400 == 0 )) ? true : false ); }


:)

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.