Calendrier annuel universel avec saints du calendrier et fêtes mobiles

Description

Un script d'encombrement réduit (mois de 7Ko !) affichant le calendrier de l'année à l'ouverture de la page mais susceptible d'afficher par simples clics les différentes années du calendrier grégorien.
Établi à partir de la liste des saints du jour publiée par tefa24600 ce calendrier, de présentation traditionnelle type pompiers ou PTT, indique notamment les fêtes mobiles (mercredi des Cendres, jeudi de l'Ascension et dimanche de Pentecôte) dont les sièges sont liées à celui de la date de Pâques.
Le script illustre la possibilité de stocker des données sous forme de chaînes et donc de fichiers textes ou javascript constituant de mini-bases de données. La généralisation de l'utilisation de tels fichiers pourrait faciliter les transmissions et échanges de données.

Source / Exemple :


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="fr">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="generator" content="PSPad editor, www.pspad.com">
<title>Calendrier</title>
<style type="text/css">
body {margin:0;padding:0;font:10px/13px "Courier New",Courier,monospace}
h1 {margin:20px;padding:0;font:16px/20px;text-align:center;}
a {text-decoration:none;color:#909;}
.mst {font-size:12px}
#cal {display:block;position:relative;margin:0 auto;width:840px;height:900px;overflow:hidden;}
.clc {display:block;position:absolute;width:200px;padding:1px;background:#fff;}
</style>
</head>
<body>
<h1><a href="javascript:newAnn(-20)" title="Recul rapide - 20ans)">««</a>&nbsp;<a href="javascript:newAnn(-1)" title="Année précédente">«</a>&nbsp;Calendrier <span id="ida"></span>&nbsp;<a href="javascript:newAnn(+1)" title="Année suivante">»</a>&nbsp;<a href="javascript:newAnn(+20)" title="Avance rapide - 20 ans">»»</a>&nbsp;</h1>
<div id="cal"></div>
<script type="text/javascript">
var mos='Janvier|Février|Mars|Avril|Mai|Juin|Juillet|Août|Septembre|Octobre|Novembre|Décembre'.split(/\|/g);
var tSt="Jour de l'an|St Basile|Ste Geneviève|St Odilon|St Edouard|Ste Mélaine|St Raymond|St Lucien|Ste Alix|St Guillaume|St Paulin|Ste Tatiana|Ste Yvette|Ste Nina|St Rémi|St Marcel|Ste Roseline|Ste Prisca|St Marius|St Sébastien|Ste Agnès|St Vincent|St Barnard|St François de Sales|St Apollos|Ste Paule|Ste Angèle|St Thomas d'Aquin|St Gildas|Ste Martine|Ste Marcelle|Ste Ella|St Théophane|St Blaise|Ste Véronique|Ste Agathe|St Gaston|Ste Eugénie|Ste Jacqueline|Ste Apolline|St Arnaud|ND de Lourdes|St Félix|Ste Béatrice|St Valentin|St Claude|Ste Julienne|St Alexis|Ste Bernadette|St Gabin|Ste Aimée|St Damien|Ste Isabelle|St Lazare|St Modeste|St Roméo|St Nestor|Ste Honorine|St Romain|St Auguste|St Aubin|St Jaouen|St Gwénola|St Casimir|St Olive|Ste Colette|Ste Félicité|St Jean de Dieu|Ste Françoise|St Vivien|Ste Rosine|Ste Justine|St Rodrigue|Ste Mathilde|Ste Louise|Ste Bénédicte|St Patrick|St Cyrille|St Joseph|St Herbert|Ste Clémence|Ste Léa|St Victorien|Ste Karine|Annonciation|Ste Lara|St Habib|St Gontran|Ste Gwladys|St Amédée|St Benjamin|St Hugues|Ste Sandrine|St Richard|St Isidore|Ste Irène|St Marcellin|St Jean-Baptiste|Ste Julie|St Gautier|St Fulbert|St Stanislas|St Jules|Ste Ida|St Maxime|St Paterne|St Benoît-Joseph|St Anicet|St Parfait|Ste Emma|Ste Odette|St Anselme|St Alexandre|St Georges|St Fidèle|St Marc|Ste Alida|Ste Zita|Ste Valérie|Ste Catherine|St Robert|St Jeremie|St Boris|St Philippe|St Sylvain|Ste Judith|Ste Prudence|Ste Gisèle|St Désiré|Ste Pacôme|Ste Solange|Ste Estelle|St Achille|Ste Rolande|St Matthias|Ste Denise|St Honoré|St Pascal|St Eric|St Yves|St Bernardin|St Constantin|St Emile|St Didier|St Donatien|Ste Sophie|St Bérenger|St Augustin|St Germain|St Aymard|St Ferdinand|Ste Perrette|St Justin|Ste Blandine|St Kevin|Ste Clotilde|St Igor|St Norbert|St Gilbert|St Médard|Ste Diane|Ste Trinité|St Barnabé|St Guy|St Antoine|St Elisée|Ste Germaine|St Régis|St Hervé|St Léonce|St Romuald|St Silvère|St Rodolphe|St Alban|Ste Audrey|St Yann|St Prosper|St Anthelme|St Fernand|St Irénée|St Pierre/St Paul|St Martial|St Thierry|St Martinien|St Thomas|St Florent|St Antoine|Ste Mariette|St Eliane|St Thibaud|Ste Amandine|St Ulric|St Benoît|St Olivier|St Henri/St Joël|St Camille/Fête Nationale|St Donald|Ste Carmen|Ste Charlotte|St Frédéric|St Arsène|Ste Marina|St Victor|Ste Marie-Madeleine|Ste Brigitte|Ste Christine|St Jacques|Ste Anne|Ste Nathalie|St Samson|Ste Marthe|Ste Juliette|St Ignace|St Alphonse|St Julien|Ste Lydie|St Jean-Marie|St Abel|St Octavien|St Gaétan|St Dominique|St Amour|St Laurent|Ste Claire|Ste Clarisse|St Hippolyte|St Evrard|Ste Marie/Assomption|St Armel|St Hyacinthe|Ste Hélène|St Jean-Eudes|St Bernard|St Christophe|St Fabrice|Ste Rose|St Barthélémy|St Louis|Ste Natacha|Ste Monique|St Augustin|Ste Sabine|St Fiacre|St Aristide|St Gilles|Ste Ingrid|St Grégoire|Ste Rosalie|Ste Raïssa|St Bertrand|Ste Reine|St Adrien|St Alain|Ste Inès|St Adelphe|St Apollinaire|St Aimé|St Materne|St Roland|Ste Edith|St Renaud|Ste Nadège|Ste Emilie|St Davy|St Matthieu|St Maurice|St Constant|Ste Thècle|St Hermann|St Côme/St Damien|St Vincent de Paul|St Venceslas|Sts Michel|St Jérôme|Ste Thérèse|St Léger|St Gérard|St François|Ste Fleur|St Bruno|St Serge|Ste Pélagie|St Denis|St Ghislain|St Firmin|St Wilfrid|St Géraud|St Juste|Ste Thérèse|Ste Edwige|St Baudouin|St Luc|St René Goupil|Ste Adeline|Ste Céline|Ste Elodie|St Jean de Capistran|St Florentin|St Crépin|St Dimitri|Ste Emeline|St Simon|St Narcisse|Ste Bienvenue|St Quentin|Toussaint|Défunts|St Hubert|St Charles|Ste Sylvie|Ste Bertille|Ste Carine|St Geoffroy|St Théodore|St Léon|St Martin|St Christian|St Brice|St Sidoine|St Albert|Ste Marguerite|Ste Elisabeth|Ste Aude|St Tanguy|St Edmond|Présentation de Marie|Ste Cécile|St Clément|Ste Flora|Ste Catherine|Ste Delphine|St Séverin|St Jacques de la Marche|St Saturnin|St André|Ste Florence|Ste Viviane|St Xavier|Ste Barbara|St Gérald|St Nicolas|St Ambroise|Ste Frida|St Pierre Fourier|St Romaric|St Daniel|Ste Chantal|St Lucie|Ste Odile|Ste Ninon|Ste Alice|St Gaël|St Gatien|St Urbain|St Théophile|St Pierre Canisius|Ste Françoise-Xavière|St Armand|Ste Adèle|Noël|St Etienne|St Jean|St Gaspard|St David|St Roger|St Sylvestre".split(/\|/g);
function edtCal(a){
	var chn='',ms=-1,bs=0,s=Math.floor(a/100),pl=(15-Math.floor(s/4)+s-Math.floor(((s<<3)+13)/25)+19*(a%19))%30,pj,pq,cn,pq,as,pn;
	if (pl==28) if (10<(a%19)) pl--;else pl++;
	pj=pl;if (pl!=29 || new Date(a,2,pl).getDay()) pj=pl-new Date(a,2,pl).getDay()+7;
	cn=new Date(a,2,pj-25).valueOf();pq=new Date(a,2,pj+21).valueOf();
	as=new Date(a,2,pj+60).valueOf();pn=new Date(a,2,pj+70).valueOf();
	for (i=1;;i++){cd=new Date(a,0,i);
		if (cd.getFullYear()!=a) break;
		if (cd.getMonth()!=ms) {ms=cd.getMonth();
			if (chn) chn+='</div>';
			chn+='<div class="clc" style="left:'+((140*ms)%840)+'px;top:'+((ms<6)?0:450)+'px"><b class="mst">'+mos[ms]+'</b><hr>'}
		if (i==60 && cd.getMonth()==2) bs++;
		y=z='';if (!cd.getDay()) {y='<u>';z='</u>';}
		if (cd.valueOf()==cn) chn+='Me '+cd.getDate()+' <b>Cendres *</b><br>';
		else if (cd.valueOf()==pq) chn+='<u>Di '+cd.getDate()+' <b>Pâques *</b></u><br>';
		else if (cd.valueOf()==as) chn+='Je '+cd.getDate()+' <b>Ascension *</b><br>';
		else if (cd.valueOf()==pn) chn+='<u>Di '+cd.getDate()+' <b>Pentecôte *</b></u><br>';
		else chn+=y+"DiLuMaMeJeVeSa".substr(2*cd.getDay(),2)+' '+cd.getDate()+' '+tSt[i-1+bs]+z+'<br>';}
	chn+='</div>';
	document.getElementById('ida').innerHTML=a;
	document.getElementById('cal').innerHTML=chn;
}
edtCal(new Date().getFullYear());
function newAnn(d){var a=document.getElementById('ida').innerHTML;edtCal(parseInt(a)+d);}
</script>
</body>
</html>

Conclusion :


Ce script illustre les souplesse et puissance de pages html munies de simples scripts, elles rendent caduques nombre de documents anciens dont les évolutions devraient ouvrir de larges perspectives...

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.