Calendrier dynamique (au moins un p'tit peu)

Description

Un calendrier simple et réexploitable facilement.
Utilise l'objet Date pour repèrer le nombre de jour dans chaque mois et les années bisextiles. (c'est vraiment très complexe le calcul d'une date !)

(Flash MX 6.0)

Source / Exemple :


NomMoisTable = new Array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Aout", "Septembre", "Octobre", "Novembre", "Décembre");
Ox = CadreCalendrier._x+10;
Oy = CadreCalendrier._y+10;
function AffichageCalendrier(f_mois, f_année) {
	//suppression du mois précédent
	for (i=1; i<=31; i++) {
		eval("NumeroJour"+i).removeTextField();
	}
	//adaptation (personnel) {1..12} --> {0..11}
	//en réalité on note de 1 à 12 ; mais ici, on note de 0 à 11 ! (allez savoir pourquoi)
	f_mois--;
	//création de l'objet date
	DateAffichée = new Date();
	f_semaine = 1;
	i = 1;
	NumeroJour = i;
	while (NumeroJour == i) {
		//définition de la date
		DateAffichée.setUTCFullYear(f_année, f_mois, i);
		NumeroJour = DateAffichée.getUTCDate();
		NomJour = DateAffichée.getUTCDay();
		NomJour = (NomJour == 0) ? (7) : NomJour;
		if (NomJour == 1 and i != 1) {
			f_semaine++;
		}
		X = Ox+20*(NomJour-1);
		Y = Oy+20*(f_semaine-1);
		//Objets texte affichant le numéro du jour : NumeroJour
		_root.createTextField("NumeroJour"+i, i*10, X, Y, 20, 20);
		with (eval("NumeroJour"+i)) {
			border = true;
			borderColor = "0x333333";
			background = true;
			backgroundColor = "0xD0D0D0";
			selectable = false;
			html = true;
			if (f_mois == Today.getMonth() and NumeroJour == Today.getDate() and f_année == Today.getFullYear()) {
				NumeroJour = "<b>"+NumeroJour;
				backgroundColor = "0xFF9999";
			}
			htmltext = "<P ALIGN='center'>"+NumeroJour;
		}
		//seulement pour la boucle
		i++;
		DateAffichée.setUTCFullYear(f_année, f_mois, i);
		NumeroJour = DateAffichée.getUTCDate();
	}
	NomMois = NomMoisTable[f_mois];
}
//Date d'aujoud'hui
Today = new Date();
mois = Today.getMonth()+1;
année = Today.getFullYear();
AffichageCalendrier(mois, année);
//Changement de mois
_root.MoisSuivant.onRelease = function() {
	if (mois == 12) {
		mois = 1;
		année++;
	} else {
		mois++;
	}
	AffichageCalendrier(mois, année);
};
_root.MoisPrécédant.onRelease = function() {
	if (mois == 1) {
		mois = 12;
		année--;
	} else {
		mois--;
	}
	AffichageCalendrier(mois, année);
};

Conclusion :


C'est la première étape de la création d'un agenda dynamique Flash+PHP+MySQL.
A suivre ...

Codes Sources

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.