L'affichage fonctionne très bien la première minute mais après les minutes du compteur augmente de 1 à chaque seconde
quid ?
Par hasard, au bout d'une minute i > 60.
oui, mais j'ai utiliser l'objet Date justement pour ne pas devoir faire tout les if.
D'ailleurs, si je démarre avec cp.setSeconds(63), le compteur commence bien 1:03
quid ?
YD
L'affichage fonctionne très bien la première minute mais après les minutes du compteur augmente de 1 à chaque seconde
quid ? Par hasard, au bout d'une minute i > 60.
oui, mais j'ai utiliser l'objet Date justement pour ne pas devoir faire tout les if.
D'ailleurs, si je démarre avec cp.setSeconds(63), le compteur commence bien 1:03
quid ?
Si à ce moment, on interroge avec getSeconds on obtient 3. Si on effectue alors setSeconds(64), les secondes seront bien mises à 4 mais la minute changera aussi et passera de 1 (valeur obtenue avec setSeconds(63)) à 2...
La solution devrait plutôt passer par l'utilisation de getSeconds -- et même plus de i !
-- Y.D.
L'affichage fonctionne très bien la première minute mais après les
minutes du compteur augmente de 1 à chaque seconde
quid ?
Par hasard, au bout d'une minute i > 60.
oui, mais j'ai utiliser l'objet Date justement pour ne pas devoir faire
tout les if.
D'ailleurs, si je démarre avec cp.setSeconds(63), le compteur commence
bien 1:03
quid ?
Si à ce moment, on interroge avec getSeconds on obtient 3. Si on effectue
alors setSeconds(64), les secondes seront bien mises à 4 mais la minute
changera aussi et passera de 1 (valeur obtenue avec setSeconds(63)) à 2...
La solution devrait plutôt passer par l'utilisation de getSeconds
-- et même plus de i !
L'affichage fonctionne très bien la première minute mais après les minutes du compteur augmente de 1 à chaque seconde
quid ? Par hasard, au bout d'une minute i > 60.
oui, mais j'ai utiliser l'objet Date justement pour ne pas devoir faire tout les if.
D'ailleurs, si je démarre avec cp.setSeconds(63), le compteur commence bien 1:03
quid ?
Si à ce moment, on interroge avec getSeconds on obtient 3. Si on effectue alors setSeconds(64), les secondes seront bien mises à 4 mais la minute changera aussi et passera de 1 (valeur obtenue avec setSeconds(63)) à 2...
La solution devrait plutôt passer par l'utilisation de getSeconds -- et même plus de i !
-- Y.D.
Francis Spiesser
Il se trouve que Y a personne a formulé :
Bonjour,
J'essaye de créer un genre de compteur de secondes.
Je démarre avec ceci :
var cp= new Date(); cp.setMinutes(0); cp.setSeconds(0);
var i=1;
Toute les secondes, j'exécute la fonction suivante avec setInterval : cp.setSeconds(i++);
L'affichage fonctionne très bien la première minute mais après les minutes du compteur augmente de 1 à chaque seconde
quid ?
cp.setMinutes(0);cp.setSeconds(i++);
Et au bout de 3600 secondes, tu auras le même problème avec les heures
-- ______ Francis (enlever .NIPUBNISOUMIS) "Un four cuit toujours trop ou pas assez. Un micro-onde fait même les deux à la fois"
Il se trouve que Y a personne a formulé :
Bonjour,
J'essaye de créer un genre de compteur de secondes.
Je démarre avec ceci :
var cp= new Date();
cp.setMinutes(0);
cp.setSeconds(0);
var i=1;
Toute les secondes, j'exécute la fonction suivante avec setInterval :
cp.setSeconds(i++);
L'affichage fonctionne très bien la première minute mais après les minutes du
compteur augmente de 1 à chaque seconde
quid ?
cp.setMinutes(0);cp.setSeconds(i++);
Et au bout de 3600 secondes, tu auras le même problème avec les heures
--
______
Francis (enlever .NIPUBNISOUMIS)
"Un four cuit toujours trop ou pas assez. Un micro-onde fait même les
deux à la fois"
J'essaye de créer un genre de compteur de secondes.
Je démarre avec ceci :
var cp= new Date(); cp.setMinutes(0); cp.setSeconds(0);
var i=1;
Toute les secondes, j'exécute la fonction suivante avec setInterval : cp.setSeconds(i++);
L'affichage fonctionne très bien la première minute mais après les minutes du compteur augmente de 1 à chaque seconde
quid ?
cp.setMinutes(0);cp.setSeconds(i++);
Et au bout de 3600 secondes, tu auras le même problème avec les heures
Et merci, j'ai juste mis ceci dans la fonction setInterval :
cp.setMinutes(0); cp.setSeconds(i++);
et ça fonctionne très bien, mais honnêtement, je ne comprend pas pourquoi ?
Francis Spiesser
Le 17/10/2007, Y a personne a supposé :
Et merci, j'ai juste mis ceci dans la fonction setInterval :
cp.setMinutes(0); cp.setSeconds(i++);
et ça fonctionne très bien, mais honnêtement, je ne comprend pas pourquoi ?
C'est simple :
Ton heure initiale est 00:00:00. Tant que tu es inférieur à 60 secondes (i<60), tu me modifies que les chiffres des secondes :
iX -> 00:00:58 iY -> 00:00:59
mais dès que tu es > 60, cela équivaut à ajouter 1 minute + n secondes i` -> 00:01:00 ia -> 00:02:01 // à ton heure précedent (ie 00:01:00), tu affectes à la valeur des secondes 61, c'est à dire 1 seconde + 1 minute) ib -> 00:03:02 etc.
un autre solution aurait été d'utiliser le modulo pour toujours "replacer" le paramètres de setSeconds dans un intervalle 1 à 60 : cp.setSeconds(((i++) % 60)+1)
-- ______ Francis (enlever .NIPUBNISOUMIS) Si la tartine tombe du côté non beurré, vous avez beurré le mauvais côté.
Le 17/10/2007, Y a personne a supposé :
Et merci, j'ai juste mis ceci dans la fonction setInterval :
cp.setMinutes(0);
cp.setSeconds(i++);
et ça fonctionne très bien, mais honnêtement, je ne comprend pas pourquoi ?
C'est simple :
Ton heure initiale est 00:00:00. Tant que tu es inférieur à 60 secondes
(i<60), tu me modifies que les chiffres des secondes :
iX -> 00:00:58
iY -> 00:00:59
mais dès que tu es > 60, cela équivaut à ajouter 1 minute + n secondes
i` -> 00:01:00
ia -> 00:02:01 // à ton heure précedent (ie 00:01:00), tu affectes à
la valeur des secondes 61, c'est à dire 1 seconde + 1 minute)
ib -> 00:03:02
etc.
un autre solution aurait été d'utiliser le modulo pour toujours
"replacer" le paramètres de setSeconds dans un intervalle 1 à 60 :
cp.setSeconds(((i++) % 60)+1)
--
______
Francis (enlever .NIPUBNISOUMIS)
Si la tartine tombe du côté non beurré, vous avez beurré le mauvais
côté.
Et merci, j'ai juste mis ceci dans la fonction setInterval :
cp.setMinutes(0); cp.setSeconds(i++);
et ça fonctionne très bien, mais honnêtement, je ne comprend pas pourquoi ?
C'est simple :
Ton heure initiale est 00:00:00. Tant que tu es inférieur à 60 secondes (i<60), tu me modifies que les chiffres des secondes :
iX -> 00:00:58 iY -> 00:00:59
mais dès que tu es > 60, cela équivaut à ajouter 1 minute + n secondes i` -> 00:01:00 ia -> 00:02:01 // à ton heure précedent (ie 00:01:00), tu affectes à la valeur des secondes 61, c'est à dire 1 seconde + 1 minute) ib -> 00:03:02 etc.
un autre solution aurait été d'utiliser le modulo pour toujours "replacer" le paramètres de setSeconds dans un intervalle 1 à 60 : cp.setSeconds(((i++) % 60)+1)
-- ______ Francis (enlever .NIPUBNISOUMIS) Si la tartine tombe du côté non beurré, vous avez beurré le mauvais côté.
Olivier Miakinen
cp.setMinutes(0);cp.setSeconds(i++);
Et au bout de 3600 secondes, tu auras le même problème avec les heures
Et merci, j'ai juste mis ceci dans la fonction setInterval :
cp.setMinutes(0); cp.setSeconds(i++);
et ça fonctionne très bien,
Ça fonctionne très bien sauf que, comme l'écrivait Francis, tu auras le même problème avec les heures au bout de 3600 secondes.
mais honnêtement, je ne comprend pas pourquoi ?
cp.SetSeconds(n) prend l'heure courante dans cp, en ignore les secondes, puis ajoute n secondes. Si n est supérieur à 60, forcément tu vas ajouter des minutes. Si n est supérieur à 3600, tu vas ajouter des heures.
Voici un exemple :
cp = 11 h 27 mn 35 s cp.SetSeconds(61) = 11 h 27 mn 0 s + 61 s = 11 h 28 mn 1 s.
cp.setMinutes(0);cp.setSeconds(i++);
Et au bout de 3600 secondes, tu auras le même problème avec les heures
Et merci, j'ai juste mis ceci dans la fonction setInterval :
cp.setMinutes(0);
cp.setSeconds(i++);
et ça fonctionne très bien,
Ça fonctionne très bien sauf que, comme l'écrivait Francis, tu auras le
même problème avec les heures au bout de 3600 secondes.
mais honnêtement, je ne comprend pas pourquoi ?
cp.SetSeconds(n) prend l'heure courante dans cp, en ignore les secondes,
puis ajoute n secondes. Si n est supérieur à 60, forcément tu vas
ajouter des minutes. Si n est supérieur à 3600, tu vas ajouter des heures.
Voici un exemple :
cp = 11 h 27 mn 35 s
cp.SetSeconds(61) = 11 h 27 mn 0 s + 61 s = 11 h 28 mn 1 s.
Et au bout de 3600 secondes, tu auras le même problème avec les heures
Et merci, j'ai juste mis ceci dans la fonction setInterval :
cp.setMinutes(0); cp.setSeconds(i++);
et ça fonctionne très bien,
Ça fonctionne très bien sauf que, comme l'écrivait Francis, tu auras le même problème avec les heures au bout de 3600 secondes.
mais honnêtement, je ne comprend pas pourquoi ?
cp.SetSeconds(n) prend l'heure courante dans cp, en ignore les secondes, puis ajoute n secondes. Si n est supérieur à 60, forcément tu vas ajouter des minutes. Si n est supérieur à 3600, tu vas ajouter des heures.
Voici un exemple :
cp = 11 h 27 mn 35 s cp.SetSeconds(61) = 11 h 27 mn 0 s + 61 s = 11 h 28 mn 1 s.
Y a personne
Le 17/10/2007, Y a personne a supposé :
Et merci, j'ai juste mis ceci dans la fonction setInterval :
cp.setMinutes(0); cp.setSeconds(i++);
et ça fonctionne très bien, mais honnêtement, je ne comprend pas pourquoi ?
C'est simple :
Ton heure initiale est 00:00:00. Tant que tu es inférieur à 60 secondes (i<60), tu me modifies que les chiffres des secondes :
iX -> 00:00:58 iY -> 00:00:59
mais dès que tu es > 60, cela équivaut à ajouter 1 minute + n secondes i` -> 00:01:00 ia -> 00:02:01 // à ton heure précedent (ie 00:01:00), tu affectes à la valeur des secondes 61, c'est à dire 1 seconde + 1 minute) ib -> 00:03:02 etc.
un autre solution aurait été d'utiliser le modulo pour toujours "replacer" le paramètres de setSeconds dans un intervalle 1 à 60 : cp.setSeconds(((i++) % 60)+1)
Après une bonne nuit de sommeil, le problème est plus clair...
merci
Le 17/10/2007, Y a personne a supposé :
Et merci, j'ai juste mis ceci dans la fonction setInterval :
cp.setMinutes(0);
cp.setSeconds(i++);
et ça fonctionne très bien, mais honnêtement, je ne comprend pas
pourquoi ?
C'est simple :
Ton heure initiale est 00:00:00. Tant que tu es inférieur à 60 secondes
(i<60), tu me modifies que les chiffres des secondes :
iX -> 00:00:58
iY -> 00:00:59
mais dès que tu es > 60, cela équivaut à ajouter 1 minute + n secondes
i` -> 00:01:00
ia -> 00:02:01 // à ton heure précedent (ie 00:01:00), tu affectes à
la valeur des secondes 61, c'est à dire 1 seconde + 1 minute)
ib -> 00:03:02
etc.
un autre solution aurait été d'utiliser le modulo pour toujours
"replacer" le paramètres de setSeconds dans un intervalle 1 à 60 :
cp.setSeconds(((i++) % 60)+1)
Après une bonne nuit de sommeil, le problème est plus clair...
Et merci, j'ai juste mis ceci dans la fonction setInterval :
cp.setMinutes(0); cp.setSeconds(i++);
et ça fonctionne très bien, mais honnêtement, je ne comprend pas pourquoi ?
C'est simple :
Ton heure initiale est 00:00:00. Tant que tu es inférieur à 60 secondes (i<60), tu me modifies que les chiffres des secondes :
iX -> 00:00:58 iY -> 00:00:59
mais dès que tu es > 60, cela équivaut à ajouter 1 minute + n secondes i` -> 00:01:00 ia -> 00:02:01 // à ton heure précedent (ie 00:01:00), tu affectes à la valeur des secondes 61, c'est à dire 1 seconde + 1 minute) ib -> 00:03:02 etc.
un autre solution aurait été d'utiliser le modulo pour toujours "replacer" le paramètres de setSeconds dans un intervalle 1 à 60 : cp.setSeconds(((i++) % 60)+1)
Après une bonne nuit de sommeil, le problème est plus clair...
merci
YD
cp.setMinutes(0);cp.setSeconds(i++);
Et au bout de 3600 secondes, tu auras le même problème avec les heures
Ça fonctionne très bien sauf que, comme l'écrivait Francis, tu auras le même problème avec les heures au bout de 3600 secondes.
mais honnêtement, je ne comprend pas pourquoi ?
cp.SetSeconds(n) prend l'heure courante dans cp, en ignore les secondes, puis ajoute n secondes. Si n est supérieur à 60, forcément tu vas ajouter des minutes. Si n est supérieur à 3600, tu vas ajouter des heures.
Bien que mon premier poste soit resté ignoré, je reviens :-)
Pour éviter tous ces problèmes il suffit sans doute de toujours ajouter une seconde au temps actuellement stocké :
cp.setSeconds(1 + cp.getSeconds());
-- Y.D.
cp.setMinutes(0);cp.setSeconds(i++);
Et au bout de 3600 secondes, tu auras le même problème avec les heures
Ça fonctionne très bien sauf que, comme l'écrivait Francis, tu auras le
même problème avec les heures au bout de 3600 secondes.
mais honnêtement, je ne comprend pas pourquoi ?
cp.SetSeconds(n) prend l'heure courante dans cp, en ignore les secondes,
puis ajoute n secondes. Si n est supérieur à 60, forcément tu vas
ajouter des minutes. Si n est supérieur à 3600, tu vas ajouter des heures.
Bien que mon premier poste soit resté ignoré, je reviens :-)
Pour éviter tous ces problèmes il suffit sans doute de toujours ajouter
une seconde au temps actuellement stocké :
Et au bout de 3600 secondes, tu auras le même problème avec les heures
Ça fonctionne très bien sauf que, comme l'écrivait Francis, tu auras le même problème avec les heures au bout de 3600 secondes.
mais honnêtement, je ne comprend pas pourquoi ?
cp.SetSeconds(n) prend l'heure courante dans cp, en ignore les secondes, puis ajoute n secondes. Si n est supérieur à 60, forcément tu vas ajouter des minutes. Si n est supérieur à 3600, tu vas ajouter des heures.
Bien que mon premier poste soit resté ignoré, je reviens :-)
Pour éviter tous ces problèmes il suffit sans doute de toujours ajouter une seconde au temps actuellement stocké :
cp.setSeconds(1 + cp.getSeconds());
-- Y.D.
Olivier Miakinen
Bien que mon premier poste soit resté ignoré, je reviens :-)
Je l'avais lu, et oublié de signaler à Y a personne que tu lui donnais une solution sans bavure.
Pour éviter tous ces problèmes il suffit sans doute de toujours ajouter une seconde au temps actuellement stocké :
cp.setSeconds(1 + cp.getSeconds());
Voilà, c'est parfaitement clair.
Bien que mon premier poste soit resté ignoré, je reviens :-)
Je l'avais lu, et oublié de signaler à Y a personne que tu lui donnais
une solution sans bavure.
Pour éviter tous ces problèmes il suffit sans doute de toujours ajouter
une seconde au temps actuellement stocké :