Calendrier dynamique (au moins un p'tit peu)

Soyez le premier à donner votre avis sur cette source.

Vue 25 325 fois - Téléchargée 4 308 fois

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

Ajouter un commentaire Commentaires
Messages postés
3
Date d'inscription
samedi 28 mars 2009
Statut
Membre
Dernière intervention
15 janvier 2010

MERCI POUR CETTE APPLICATION
Messages postés
1
Date d'inscription
mardi 13 février 2007
Statut
Membre
Dernière intervention
13 février 2007

C très cool
J'avais la flemme de ressortir un algo que j'ai fouré je sais plu où
Ton calendar est très très sympa
Parce qu'ill est tellement simple qu'on peux facilement l'adapter à ses besoins

Merci
A++
Messages postés
5
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
6 août 2005

je confirme, c'est une très bonne base pour travailler sur l'insertion d'événement particulier.... ton petit prog tourne parfaitement.... pour une première tentative, je trouve que ça le fait carrément!
Félicitations....

SEB
Messages postés
4
Date d'inscription
vendredi 25 novembre 2005
Statut
Membre
Dernière intervention
24 novembre 2009

c'est juste ce que je cherchais, merci, je gagnerai du temps.
mais j'ai quant même un ti problème, comment change-t-on la police et sa couleur dans la grille du bas?
désolé çà va peut-être semble stupide comme question, mais je suis vraiment nul en AS.
si quelqu'un pouvais m'aider...
merci d'avance
Messages postés
125
Date d'inscription
mercredi 19 novembre 2003
Statut
Membre
Dernière intervention
22 janvier 2009

Je suis d'ccord, parfaite base pour faire quelque chose de dynamique avec insertion d'événements, etc...

C'est exactement ce que je cherchais, merci, je vais gagner du temps ;)
Afficher les 10 commentaires

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.