Forum de discussion
Forum « Flash et Shockwave » (archives)
Re: Texte dynamique changeant en fonction de l'heure
Envoyé: 17 novembre 2004, 9h51 par Oznog
Simplifiont un peu!
Tout d'abord, avec les dates prend l'habitude d'utiliser quelques fonctions et constantes, tu va voir que ça simplifie beaucoup. Et tu as TROIS codes complètement différent, le premier c'est l'assignation de "verif" et "verif2" avec tes zéros "réalistes", le second l'assignation de ton horloge (la rotation de aiguil_hour, aiguil_minute...) et le troisième ton histoire de "planning" que nous verront après.
1. Les jours et mois avec une fonction pour tes zéros "réalistes".
var aMoisfr = ["Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"];
var aJourfr = ["Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi"];
String.prototype.twZero=function() {
return (this < 10) ? '0' + this : this;
}
// Et donc
dMaintenant = new Date();
var jour = twZero(dMaintenant.getDate());
semaine = aJourfr[dMaintenant.getDay()];
mois = aMoisfr[dMaintenant.getMonth()];
annee = dMaintenant.getFullYear ();
heure = twZero(dMaintenant.getHours());
minute = twZero(dMaintenant.getMinutes());
seconde = twZero(dMaintenant.getSeconds());
verif = heure+":"+minute+":"+seconde;
verif2= semaine +" "+jour+" "+mois+" "+annee;
C'est bien beau mais à partir de là, les variables jour, mois, heure, minute, seconde NE SONT PLUS DES NOMBRES, alors ton code des aiguille ne peut plus fonctionner. Tu peux simplement les convertir en nombre avec "number()" mais voyons l'affaire autrement. Utilise aussi une fonction pour le format de date/heure.
// Code complet qui règle les deux premier codes.
var aMoisfr = ["Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"];
var aJourfr = ["Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi"];
function twZero(nNombre) {return (nNombre < 10) ? '0' + nNombre : nNombre;}
Date.prototype.twDateFr = function(){
// Retourne une chaine de caractère, la date
return aJourfr[this.getDay()] + ", " + this.getDate() + " " + aMoisfr[this.getMonth()] + " " + this.getFullYear();
}
Date.prototype.twHeureFr = function(){
// Retourne une chaine de caractère, l'heure
return twZero(this.getHours()) + ":" + twZero(this.getMinutes()) + ":" + twZero(this.getSeconds());
}
dMaintenant = new Date();
verif2 = dMaintenant.twDateFr();
verif = dMaintenant.twHeureFr();
nHeure = dMaintenant.getHours();
nHeure = (nHeure > 12) ? nHeure-12 : nHeure;
aiguil_hour._rotation = ((nHeure*360)/12);
aiguil_minute._rotation = ((dMaintenant.getMinutes()*360)/60);
aiguil_sec._rotation = ((dMaintenant.getSeconds()*360)/60);
2. MAINTENANT TON HISTOIRE DE PLANNING!
J'aimerais que tu précise les conditions. Car pour l'instant je boggue autant que le compilateur Flash sur tes tests de conditions.
TU NE PEUX PAS ADITIONNER des tests l'un après l'autre simplement à les séparent par un point virgule. Et ce avec tout langage de programmation.
J'imagine que tu veux les combiner (p.s. utilise "==" au lieu de "eq". note aussi que "&&" = "ET" alors que "||" = "OU") ;
...
nJour = dMaintenant.getDay();
nHeures = dMaintenant.getHours();
nMinutes = dMaintenant.getMinutes();
if ( (nJour=="0")||(nHeure==6) ) {
planning1="Week-End";
planning3a=" ";
planning3b=" ";
planning4=" ";
planning5a=" ";
planning5b=" ";
planning6=" ";
} else if ( (nJour=="1")&&(nHeure==9)&&(nMinutes>=8) ) {...} else...
Mais cette portion de code pourra toujours être simplifié, optimisé, c'Est du cas par cas et surtout normalement on essai de trouver une astuce pour normaliser tout ça, un peu comme les array des jours et mois.
Ciao
Oznog
Réponses
|