Calendrier avec les feriés

Soyez le premier à donner votre avis sur cette source.

Vue 44 739 fois - Téléchargée 2 373 fois

Description

Un Calendrier Grégorien perpétuel avec le calculs des jours férié, même Pâques et les autres...

Source / Exemple :


var Ferie=new Array("01/01","01/05","08/05","14/07","15/08","01/11","11/11","25/12");
var LesMois=new Array("Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre");
var Semaine = new Array("Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi","Dimanche");
var DernierJour = new Array("31", "28", "31", "30", "31", "30", "31", "31", "30", "31", "30", "31");
var CouleurFond = new Array("white","silver" , "darkgray" , "#808080" , "#999999");
var Bordure = new Array("gray", "darkgray");
var Police = new Array("Arial" , "Verdana" , "Verdana" , "Arial");
var TaillePolice = new Array("1" , "1" , "2" , "-1");
var CouleurPolice = new Array("white" , "black", "silver" , "darkgray");
var PositionTexteH = new Array("left" , "center" , "right");
var PositionTexteV = new Array("top","middle","bottom");
var CeJour = new Date();
var n = CeJour.getDay();		// Jour de la semaine
var j = CeJour.getDate(); 		// Jour du mois
var m = CeJour.getMonth();		// Mois
var a = CeJour.getFullYear();	// Année
var DimanchePaques = false ;

function Ecrit(txt) { document.write(txt) }

function annuel(Lannee) {
Ecrit("<table>");
for (var Trim = 0 ; Trim <4 ; Trim ++) {
  Ecrit("<tr>");
  for (var moi = 0 ; moi <3 ; moi ++){
   Ecrit("<td valign='"+PositionTexteV[0]+"' align='"+PositionTexteH[1]+"'>");
   calendrier(3*Trim+moi+1,Lannee);
   Ecrit("</td>");
   }
  Ecrit("</tr>");
}
Ecrit("</table>");
}

function trimestre(Trim,Lannee, Option){
Ecrit("<table>");
if (Option == 'h') {
Ecrit("<tr>");	 
for (var tt = 0 ; tt < 3 ; tt++) {
	Ecrit("<td align='"+PositionTexteH[1]+"' valign='"+PositionTexteV[0]+"'>");
	calendrier(3*(Trim-1)+tt+1,Lannee);
	Ecrit("</td>");
}
Ecrit("</tr>");
}
else
{
for (var tt = 0 ; tt < 3 ; tt++) {
	Ecrit("<tr><td align='"+PositionTexteH[1]+"' valign='"+PositionTexteV[0]+"'>");
	calendrier(3*(Trim-1)+tt+1,Lannee);
	Ecrit("</td></tr>");
	}
}
Ecrit("</table>");
}

function isFerie(jf,mf) { 
   var i=0
   	for(var i in Ferie) { 
	if ( test=(((jf<10)?'0'+jf:jf)+'/'+((mf<10)?'0'+mf:mf)) == Ferie[i++]) return true;}
	return false;
}

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

function isWeekEnd(jwe){ return ( ((jwe == 5) || (jwe == 6)) ? true : false ); }

function isPaques(pan){
DimanchePaques = true;
var b=pan-1900; 
var c=pan%19; 
var d=Math.floor((7*c+1)/19);
var e=(11*c+4-d)%29;
var f=Math.floor(b/4); 
var g=(b+f+31-e)%7;
var date=25-e-g;
if (date>0) {mois = 4}
else	{date=31+date; mois=3};
date = ( (date<10)? '0'+date:date);
Ferie.push( ((date<10)? '0'+date:date)+'/'+((mois<10)?'0'+mois:mois)); // Dimanche de Pâques
date+=1;
if ( (date>31) && (mois=3)) {date=1;mois+=1}
Ferie.push(((date<10)? '0'+date:date)+'/'+((mois<10)?'0'+mois:mois)); //Lundi de Pâques férié
date+=38;
while (date>31) {var tt=0; date-=DernierJour[mois-1+tt]; tt++ ; mois+=1}
Ferie.push(((date<10)? '0'+date:date)+'/'+((mois<10)?'0'+mois:mois)); // Jeudi de l'ascencion
date+=10;
while (date>31) {var tt=0; date-=DernierJour[mois-1+tt]; mois+=1}
Ferie.push(((date<10)? '0'+date:date)+'/'+((mois<10)?'0'+mois:mois)); // Pentecote

}

function calendrier(LeMois, Lannee) {
	var EnCours = new Date(Lannee,LeMois-1);
	var PremierJour = EnCours.getDay();
	if (PremierJour == 0) PremierJour = 7 ;
	if (isBissextile(Lannee)) {DernierJour[1] = 29 ;}
	if (!DimanchePaques) isPaques(Lannee); 
	var jour=0;
	Ecrit("<TABLE border=2 cellspacing='0' cellpadding='2' bordercolorlight='"+Bordure[0]+"' bordercolordark='"+Bordure[1]+"'");
	Ecrit("<TR><TD valign='"+PositionTexteV[0]+"' align='"+PositionTexteH[0]+"'>");

	Ecrit("<FONT FACE='"+Police[1]+"' size='"+TaillePolice[2]+"' color='"+CouleurPolice[0]+"'><CENTER><B>"+LesMois[LeMois-1]+" "+Lannee+"</B></CENTER></FONT>");
	Ecrit("<TABLE border=1 cellspacing='0' cellpadding='2' bordercolorlight='"+Bordure[0]+"' bordercolordark='"+Bordure[1]+"'");
	Ecrit("<TR>");
	var tt = 0;
	for (temp in Semaine) { 
	  Ecrit("<TD width='10' bgcolor='"+CouleurFond[4]+"' valign='"+PositionTexteV[0]+"' align='"+PositionTexteH[0]+"'><FONT face='"+Police[2]+"' size='"+TaillePolice[3]+"'color='"+CouleurPolice[1]+"'>"+Semaine[tt++].substring(0,1)+"</FONT></TD>");	}
	Ecrit("</TR>");  
	for(var i=0;i<6;i++) {
		Ecrit("<TR>");
		for (j=0;j<7;j++) {
			jour=7*i+j-PremierJour+2;			
			if ((7*i+j>=PremierJour-1)&&(jour<=DernierJour[LeMois-1])) {
			   if ((jour==j)&&(LeMois==m+1)&&(Lannee==a)) {
			      Ecrit("<TD width='10' bgcolor='"+CouleurFond[3]+"' valign='"+PositionTexteV[1]+"' align='"+PositionTexteH[1]+"'><FONT face='"+Police[0]+"' size='"+TaillePolice[3]+"' color='"+CouleurFond[1]+"'  color='black'><I><U>"+jour+"</I><U></FONT></TD>");}
				else if (isFerie(jour,LeMois) ) 
				    Ecrit("<TD width='10' bgcolor='"+CouleurFond[2]+"' valign='"+PositionTexteV[1]+"' align='"+PositionTexteH[1]+"'><FONT face='"+Police[0]+"' size='"+TaillePolice[3]+"' color='"+CouleurPolice[1]+"'>"+jour+"</FONT></TD>");
				else if (isWeekEnd(j)) 
				    Ecrit("<TD width='10' bgcolor='"+CouleurFond[1]+"' valign='"+PositionTexteV[1]+"' align='"+PositionTexteH[1]+"'><FONT face='"+Police[0]+"' size='"+TaillePolice[3]+"' color='"+CouleurFond[0]+"'>"+jour+"</FONT></TD>");
				else 
				    Ecrit("<TD width='10' bgcolor='"+CouleurFond[0]+"' valign='"+PositionTexteV[1]+"' align='"+PositionTexteH[1]+"'><FONT face='"+Police[0]+"' size='"+TaillePolice[3]+"' color='"+CouleurPolice[1]+"'>"+jour+"</FONT></TD>");
			}
			else 
			    Ecrit("<TD width='10' bgcolor='"+CouleurFond[0]+"'><FONT size='"+TaillePolice[3]+"'>&nbsp;</FONT></TD>");
		}
		Ecrit("</TR>");
		if (jour >= DernierJour[LeMois - 1]) {break};
	}
	Ecrit("</TABLE>");
	Ecrit("</TD></TR></TABLE>");
}

Conclusion :


Il suffit d'enregistrer le code dans un fichier .js (calendrier.js) et de l'appeler dans un fichier html avec la commande
<script language='JavaScript src='calendrier.js'></script>
Pour afficher le calendrie trois facon ...
=> calendrie (mois, année)
=> trimestre(numéro du trimestre, année, option)
=> annuel(année)
Voila ...
A bientot pour de nouvelles aventures

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

genreJtespit
Messages postés
2
Date d'inscription
vendredi 29 août 2008
Statut
Membre
Dernière intervention
29 août 2008
-
Désolé, mais je n'ai toujours pas compris comment afficher le calendrier en question ^^ (demiNoob en prog et je l'avoue, mais bon là...).
On peut l'afficher dans un simple <table> ? Les trois exemples d'affichage que tu a donné sont tout sauf clairs pour moi :p
tatave24
Messages postés
1
Date d'inscription
lundi 18 mai 2009
Statut
Membre
Dernière intervention
12 février 2010
-
Bonjour
Pas compris non plus la commande d'affichage.
chefvivi
Messages postés
1
Date d'inscription
samedi 1 mars 2008
Statut
Membre
Dernière intervention
17 mai 2010
-
bonjour
pas compris non plus comment aficher ce calendrier
merci de nous donner des indications pour un debutant comme moi
cs_jeron
Messages postés
29
Date d'inscription
lundi 30 juin 2003
Statut
Membre
Dernière intervention
25 juillet 2014
-
<script language='JavaScript src='calendrier.js'></script>
Pour afficher le calendrie trois facon ...
=> calendrie (mois, année)
=> trimestre(numéro du trimestre, année, option)
=> annuel(année)

ce qui veut dire que c'est de l'UTF8 surement codé en ainsi , cela fait donc

< = < , ce qui fait :

<script language='JavaScript' src='calendrier.js'> </script>

j'ai peut être pas eu mon bts info mais je sais faire 2-3 trucs hihi !!!
cs_jeron
Messages postés
29
Date d'inscription
lundi 30 juin 2003
Statut
Membre
Dernière intervention
25 juillet 2014
-
et aprés , il faut mettre

<script language='JavaScript' src='calendrier.js'> calendrier('6', '2011') </script>

mais comme ça ça ne marche pas, les variables ne sont pas prises en comptes

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.