Fonction SI dans du code XHTML & Java Script
Toriki16
Messages postés
9
Statut
Membre
-
Giorgiolino Messages postés 270 Statut Contributeur -
Giorgiolino Messages postés 270 Statut Contributeur -
Bonjour,
Je m'amuse à faire un comptes à rebours
Maintenant que j'ai réussi à faire la correction automatique des fautes (S en trop quand le nombre arrivait à 1 ou 0) J'aimerai faire un truc un peu plus difficile dans ce que je m'amuse à faire mais c'est carrément hors de mes compétences.
Je voudrais tout simplement que lorsque un des nombres arrive à 0 dans un compte à rebours, et bien tout le texte auquel il se rapporte disparaisse.
Exemple:
Transformer cette phrase
Il ne reste plus que 0 jour 1 heure 0 minute et 32 secondes avant que ce compte à rebours n'arrive à zéro
en
Il ne reste plus que 1 heure et 32 secondes avant que ce compte à rebours n'arrive à zéro
et pourquoi pas que le "et " se rapporte à la parti juste avant lui si celui juste devant à disparu.
Exemple:
Transformer cette phrase
Il ne reste plus que 0 jour 1 heure 23 minutes et 0 seconde avant que ce compte à rebours n'arrive à zéro
en
Il ne reste plus que 1 heure et 23 minutes avant que ce compte à rebours n'arrive à zéro
Bien sur cela devra le faire pour tous les cas. Et il devra aussi disparaitre quand il n'y aura plus qu'une seule valeur.
Exemple:
Transformer cette phrase
Il ne reste plus que 0 jour 0 heure 1 minute et 0 seconde avant que ce compte à rebours n'arrive à zéro
en
Il ne reste plus que 1 minute avant que ce compte à rebours n'arrive à zéro
Auriez vous la solution ?
Merci bien.
Pour rappel, voilà le code en entier :
Je m'amuse à faire un comptes à rebours
Maintenant que j'ai réussi à faire la correction automatique des fautes (S en trop quand le nombre arrivait à 1 ou 0) J'aimerai faire un truc un peu plus difficile dans ce que je m'amuse à faire mais c'est carrément hors de mes compétences.
Je voudrais tout simplement que lorsque un des nombres arrive à 0 dans un compte à rebours, et bien tout le texte auquel il se rapporte disparaisse.
Exemple:
Transformer cette phrase
Il ne reste plus que 0 jour 1 heure 0 minute et 32 secondes avant que ce compte à rebours n'arrive à zéro
en
Il ne reste plus que 1 heure et 32 secondes avant que ce compte à rebours n'arrive à zéro
et pourquoi pas que le "et " se rapporte à la parti juste avant lui si celui juste devant à disparu.
Exemple:
Transformer cette phrase
Il ne reste plus que 0 jour 1 heure 23 minutes et 0 seconde avant que ce compte à rebours n'arrive à zéro
en
Il ne reste plus que 1 heure et 23 minutes avant que ce compte à rebours n'arrive à zéro
Bien sur cela devra le faire pour tous les cas. Et il devra aussi disparaitre quand il n'y aura plus qu'une seule valeur.
Exemple:
Transformer cette phrase
Il ne reste plus que 0 jour 0 heure 1 minute et 0 seconde avant que ce compte à rebours n'arrive à zéro
en
Il ne reste plus que 1 minute avant que ce compte à rebours n'arrive à zéro
Auriez vous la solution ?
Merci bien.
Pour rappel, voilà le code en entier :
<html>
<head>
<script language="JavaScript">
var cible = new Date("April 18, 2010 08:30:00");
var mms_jour = 24 * 60 * 60 * 1000;
var mms_heure = 60 * 60 * 1000;
var mms_minute = 60 * 1000;
var mms_seconde = 1000;
function decompte()
{var aujourdhui = new Date();
var change_j = -1;
var change_h = -1;
var change_m = -1;
var diff_mms = cible.getTime() - aujourdhui.getTime();
diff_jours = Math.floor(diff_mms / mms_jour);
diff_mms -= diff_jours * mms_jour;
diff_heures = Math.floor(diff_mms / mms_heure);
diff_mms -= diff_heures * mms_heure;
diff_minutes = Math.floor(diff_mms / mms_minute);
diff_mms -= diff_minutes * mms_minute;
var diff_secondes = Math.floor(diff_mms / mms_seconde);
var label_jours = (diff_jours = 1)? ' jour,':' jours,';
var label_heures = (diff_heures = 1)? ' heure,' : ' heures,';
var label_minutes = (diff_minutes = 1)? ' minute et' : ' minutes et';
var label_secondes = (diff_secondes = 1)? ' seconde' : ' secondes';
document.getElementById("jours").innerHTML = diff_jours + label_jours;
document.getElementById("heures").innerHTML = diff_heures + label_heures ;
document.getElementById("minutes").innerHTML = diff_minutes + label_minutes;
document.getElementById("secondes").innerHTML = diff_secondes + label_secondes ;
setTimeout("decompte()",1000);}
</script>
</head>
<body onLoad="decompte()">
<form name="formulaire"><font face="French script MT" size="6">
<p>Il ne reste plus que
<span id="jours">0</span>
<span id="heures">0</span>
<span id="minutes">0</span>
<span id="secondes">0</span>
avant que ce compte à rebours n'arrive à zéro.</p>
</form>
</body>
</html>
A voir également:
- Fonction SI dans du code XHTML & Java Script
- Jeux java itel - Télécharger - Jeux vidéo
- Fonction si et - Guide
- Waptrick java football - Télécharger - Jeux vidéo
- Code ascii - Guide
- Code puk bloqué - Guide
2 réponses
Salut,
j'ignore quelles sont tes motivations à faire cela mais bon passons.
J'ai réussi à faire que le texte correspondant s'afface lorsque la valeur associée devient nulle. Quant à gérer la ponctuation avec les "et" et consorts, ça demande un peu plus de travail et je te le laisse en exercice. Ou alors éventuellement un jours si j'ai le temps.
Ci-après le code modifié de la fonction decompte() :
@+
"La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information"
Albert Einstein
j'ignore quelles sont tes motivations à faire cela mais bon passons.
J'ai réussi à faire que le texte correspondant s'afface lorsque la valeur associée devient nulle. Quant à gérer la ponctuation avec les "et" et consorts, ça demande un peu plus de travail et je te le laisse en exercice. Ou alors éventuellement un jours si j'ai le temps.
Ci-après le code modifié de la fonction decompte() :
function decompte(madate) {
var aujourdhui = new Date();
var change_j = -1;
var change_h = -1;
var change_m = -1;
var diff_mms = madate.getTime() - aujourdhui.getTime();
diff_jours = Math.floor(diff_mms / mms_jour);
diff_mms -= diff_jours * mms_jour;
diff_heures = Math.floor(diff_mms / mms_heure);
diff_mms -= diff_heures * mms_heure;
diff_minutes = Math.floor(diff_mms / mms_minute);
diff_mms -= diff_minutes * mms_minute;
var diff_secondes = Math.floor(diff_mms / mms_seconde);
// Déclaration et calcul des labels
var label_jours;
var label_heures;
var label_minutes;
var label_secondes;
// Exercice : refactoriser le code de calcul des labels
if (diff_jours == 0){ label_jours ='';}
else { label_jours = (diff_jours <= 1)? diff_jours+ ' jour':diff_jours + ' jours';}
if (diff_heures == 0) { label_heures ='';}
else { label_heures = (diff_heures <= 1)? diff_heures+' heure' : diff_heures+' heures';}
if (diff_minutes == 0) { label_minutes ='';}
else { label_minutes = (diff_minutes <= 1)? diff_minutes+' minute' : diff_minutes+' minutes';}
if (diff_secondes == 0) { label_secondes =''}
else { label_secondes = (diff_secondes <= 1)? diff_secondes+' seconde' : diff_secondes+' secondes';}
// Affichage par sélection du noeud html
document.getElementById("jours").innerHTML = label_jours;
document.getElementById("heures").innerHTML = label_heures;
document.getElementById("minutes").innerHTML = label_minutes;
document.getElementById("secondes").innerHTML = label_secondes;
setTimeout("decompte(cible)",1000);
}
@+
"La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information"
Albert Einstein