Comment changer de feuille *.css selon les fêtes

Résolu/Fermé
ygeronimi - 10 déc. 2015 à 12:03
 ygeronimi - 11 déc. 2015 à 11:29
Bonjour,

Trèsnovice en javascript, j' ai écris ceci :

<HTML>
<HEAD>
<script SCRIPT LANGUAGE="JavaScript">

var jour = new Date()
var mois = new Date()
var an = new Date()
jour=jour.getDate();
mois=mois.getMonth()+1;
an =an.getYear();
if (an<1000)
an = an+1900;

switch(mois){
case 1:
var Style = "style_1.css"
break;
case 2:
var Style = "style_2.css"
break;
case 3:
var Style = "style_3.css"
break;
case 4:
var Style = "style_4.css"
break;
case 5:
var Style = "style_5.css"
break;
case 6:
var Style = "style_6.css"
break;
case 7:
var Style = "style_7.css"
break;
case 8:
var Style = "style_8.css"
break;
case 9:
var Style = "style_9.css"
break;
case 10:
var Style = "style_10.css"
break;
case 11:
var Style = "style_11.css"
break;
case 12:
var Style = "style_12.css"
if (jour > 8)
{
var fete ="noel"
}
else
if (jour > 9)
{
var fete="paques"
}
else
if (jour > 10)
{
var fete ="trinite"
}
break;
}
document.write ("<link rel=\"stylesheet\" type=\"text/css\" media=\"screen\" href=\"",Style,"\" />")
document.write("<small><font color='#ffffff' face='Arial'><b>date : ",jour,"/",mois,"/",an," - ",fete,"</b></font></small>")
</script>
</HEAD>
<BODY>
<div id="mondiv">
</div>
</BODY>
</HTML>


Si quelqu' un peut me corriger, je lui en serai reconnaissant.

1 réponse

Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
543
Modifié par Pitet le 10/12/2015 à 12:25
Salut,

Une solution possible :
var date = new Date();
var jour = date.getDate();
var mois = date.getMonth()+1;
var an = date.getFullYear();

var style = "style_" + mois + ".css";
var fete = "";

if (mois == 12) {
 if (jour > 8) {
  fete = "noel";
 } 
 if (jour > 9) {
  fete= "paques";
 } 
 if (jour > 10) {
  fete = "trinite";
 }  
}

document.write("<link rel=\"stylesheet\" type=\"text/css\" media=\"screen\" href=\"" + style + "\" />");
document.write("<small><font color='#ffffff' face='Arial'><b>date : " + jour + "/" + mois + "/" + an + " - " + fete + "</b></font></small>");


Remarques :
- un seul objet Date suffit
- plus simple d'utiliser getFullYear() à la place de getYear()
- le mot clé 'var' est utilisé pour déclarer une variable seulement la première fois
- le switch est répétitif, on peu le remplacer directement par var style = "style_" + mois + ".css";
- il faut enchainer les blocs 'if' à la place des 'else if' si on veut que chaque condition soit vérifiées

Bonne journée
0
Merci à toi pour ta réponse Pitet.
Je teste cela en rentrant chez moi ce soir.
J' essai de rendre un site un peu plus attractif et je dois me mettre au javascript.
c' est dur mais je ne désespère pas.

Le site que j' essai d' améliorer : http://www.panoramiclemag.webege.com/
0
@ Pitet,

Encore merci, cela fonctionne bien.
Juste une petite question, pourquoi si j' écris :
if (mois = 10).... 

la variable prend 10 pour valeur au lieu vérifier l' égalité ?...
Je vois dans tes lignes:
if (mois == 12)....

???...
0
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
543
11 déc. 2015 à 11:12
0
ygeronimi > Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022

11 déc. 2015 à 11:29
Merci pour cette précision Pitet.
Je garde ton lien en favori pour apprendre.
0