Je cherche le moyen de transformer un nombre en base 100 (0-9) en base 60 pour manipuler un affichage de compteur.
Est ce possible ?
Je sais que je vous donne peu d'element donc si vous avez une idée de piste je suis preneur !
Merci a tous
Version imprimable
Je cherche le moyen de transformer un nombre en base 100 (0-9) en base 60 pour manipuler un affichage de compteur.
Est ce possible ?
Je sais que je vous donne peu d'element donc si vous avez une idée de piste je suis preneur !
Merci a tous
Salut,
les conversions de base sont des algorithmes connus, tu peux les trouver facilement sur le Net. L'idée est la suivante :
- On déclare une liste (ou un tableau) pour récupérer des restes de division ;
- On divise le nombre par la base voulue et on stocke le reste ;
- On remplace le nombre par le quotient de la division qu'on vient de faire, et on recommence ;
- Pour obtenir le résultat, concaténer les restes de la liste en partant de la fin.
Note, si un jour tu as besoin de convertir vers une base inférieure ou égale à 36 (typiquement la base hexa), la méthode toString des nombres, en JavaScript, te permet de faire ça :Edit : Je dois pouvoir retrouver dans mes dossiers un vieux bout de code qui fait ça, si jamais tu sèches ;)Code:(248).toString(16);
Merci de tes info je vais me pencher dessus ;p
Ya ds trucs que tu ne sache pas faire ?? :ccool:
Non. :mrgreen:
Pas besoin d'algorithme, JavaScript sait faire ça en natif :)
PS :Code:
1
2 var nb = 7; alert(nb.toString(6));
En base 100 8OCitation:
transformer un nombre en base 100 (0-9)
voila a qui j'arrive ! Ca fontionne bien avec l'affichage et tout. Pourtant je pense qu'il y a moyen d'avoir un code disons un peu plus propre. Je debute en javas donc un peu d'indulgence ;p
Pour tester il faut 10 images de 0 a 9 en jpg.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66 document.obj1=120; /*pour le test*/ var copieDuNombre = document.obj1; var premiernum1 = []; var minute; while (copieDuNombre > 0) { if (Math.floor(copieDuNombre) > 59) { minute = Math.floor(copieDuNombre / 60); copieDuNombre = copieDuNombre - (minute * 60); if (minute == 1) { if (copieDuNombre < 10) { premiernum1.unshift(copieDuNombre % 10); premiernum1.unshift(0); copieDuNombre = Math.floor(copieDuNombre / 10); } } } else { premiernum1.unshift(copieDuNombre % 10); copieDuNombre = Math.floor(copieDuNombre / 10); } if ((copieDuNombre == 0)&&(minute != null)) {premiernum1.unshift(minute); minute = 0;} } var longueur = premiernum1.length; if (longueur == 3) { document.heur11 = 'images/compteur/'+premiernum1[0]+'.jpg'; document.heur12 = 'images/compteur/'+premiernum1[1]+'.jpg'; document.heur13 = 'images/compteur/'+premiernum1[2]+'.jpg'; document.heur11.src = 'images/compteur/'+premiernum1[0]+'.jpg'; document.heur12.src = 'images/compteur/'+premiernum1[1]+'.jpg'; document.heur13.src = 'images/compteur/'+premiernum1[2]+'.jpg'; } else if (longueur == 2) { document.heur11 = 'images/compteur/0.jpg'; document.heur12 = 'images/compteur/'+premiernum1[0]+'.jpg'; document.heur13 = 'images/compteur/'+premiernum1[1]+'.jpg'; document.heur11.src = 'images/compteur/0.jpg'; document.heur12.src = 'images/compteur/'+premiernum1[0]+'.jpg'; document.heur13.src = 'images/compteur/'+premiernum1[1]+'.jpg'; } else if (longueur == 1) { document.heur11 = 'images/compteur/0.jpg'; document.heur12 = 'images/compteur/0.jpg'; document.heur13 = 'images/compteur/'+premiernum1[0]+'.jpg'; document.heur11.src = 'images/compteur/0.jpg'; document.heur12.src = 'images/compteur/0.jpg'; document.heur13.src = 'images/compteur/'+premiernum1[0]+'.jpg'; } else { document.heur11 = 'images/compteur/0.jpg'; document.heur12 = 'images/compteur/0.jpg'; document.heur13 = 'images/compteur/0.jpg'; document.heur11.src = 'images/compteur/0.jpg'; document.heur12.src = 'images/compteur/0.jpg'; document.heur13.src = 'images/compteur/0.jpg'; }
en javas ?
c'est du javascript ... :aie:
Bovino j'imagine que tu avais compris tout de meme ce que je voulais dire en parlant de base 100. 100 ou 10 pour un non initier c'est la meme chose.
Moi je voulais obtenir une base 60 et plus haut on m'a dis que le tostring ne fonctionner pas pour une base superieur a 36. Ensuite peut on assimiler une base 60 a une base 6 8O ? je ne sais pas. En tout cas voici mon code et dites moi ce que vous en pensez !
Merci a tous
si c'est juste en base 60 voici un debut de piste
Code:
1
2
3
4 inputval=90 temptime=new Date(0) temptime.setSeconds(inputval) alert(temptime.getMinutes().toString()+','+ temptime.getSeconds()/60*100)
Je me suis peut etre bien embeter pour rien alors ! lol
en attendant que je regarde ce que tu viens de me mettre j'ai une question sur la suite de mon script.
Je suis moyen sur pour la boucle for du fait que ca ne fonctionne pas !
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66 for (i=1; i<10; i++) { var copieDuNombre = document.obj[i]; var premiernum1 = []; var minute; while (copieDuNombre > 0) { if (Math.floor(copieDuNombre) > 59) { minute = Math.floor(copieDuNombre / 60); copieDuNombre = copieDuNombre - (minute * 60); if (minute == 1) { if (copieDuNombre < 10) { premiernum1.unshift(copieDuNombre % 10); premiernum1.unshift(0); copieDuNombre = Math.floor(copieDuNombre / 10); } } } else { premiernum1.unshift(copieDuNombre % 10); copieDuNombre = Math.floor(copieDuNombre / 10); } if ((copieDuNombre == 0)&&(minute != null)) {premiernum1.unshift(minute); minute = 0;} } var longueur = premiernum1.length; if (longueur == 3) { document.heur1[i] = 'images/compteur/'+premiernum1[0]+'.jpg'; document.heur2[i] = 'images/compteur/'+premiernum1[1]+'.jpg'; document.heur3[i] = 'images/compteur/'+premiernum1[2]+'.jpg'; document.heur1[i].src = 'images/compteur/'+premiernum1[0]+'.jpg'; document.heur2[i].src = 'images/compteur/'+premiernum1[1]+'.jpg'; document.heur3[i].src = 'images/compteur/'+premiernum1[2]+'.jpg'; } else if (longueur == 2) { document.heur1[i] = 'images/compteur/0.jpg'; document.heur2[i] = 'images/compteur/'+premiernum1[0]+'.jpg'; document.heur3[i] = 'images/compteur/'+premiernum1[1]+'.jpg'; document.heur1[i].src = 'images/compteur/0.jpg'; document.heur2[i].src = 'images/compteur/'+premiernum1[0]+'.jpg'; document.heur3[i].src = 'images/compteur/'+premiernum1[1]+'.jpg'; } else if (longueur == 1) { document.heur1[i] = 'images/compteur/0.jpg'; document.heur2[i] = 'images/compteur/0.jpg'; document.heur3[i] = 'images/compteur/'+premiernum1[0]+'.jpg'; document.heur1[i].src = 'images/compteur/0.jpg'; document.heur2[i].src = 'images/compteur/0.jpg'; document.heur3[i].src = 'images/compteur/'+premiernum1[0]+'.jpg'; } else { document.heur1[i] = 'images/compteur/0.jpg'; document.heur2[i] = 'images/compteur/0.jpg'; document.heur3[i] = 'images/compteur/0.jpg'; document.heur1[i].src = 'images/compteur/0.jpg'; document.heur2[i].src = 'images/compteur/0.jpg'; document.heur3[i].src = 'images/compteur/0.jpg'; } }
Ca ne fonctionne pas vraimment :/ ca me sort en base 10. Pour 30 seconde ca me donne 0.50 par exemple. je n'ai pas creusé plus pour le moment je voudrais tout d'abord resoudre mon soucis de boucle du post un peu plus haut.
Mais j'essaierais tout de meme ta methode voir si j'arrive a tirer un code plus simple. Merci !
30 secondes est bien la moitié d'une minute, soit 0.5 ... non??Citation:
Pour 30 seconde ca me donne 0.50 par exemple.
hehe oui bien sur ! moi je veux 30 seconde affiche 30 sec et pas 0.5 tout comme 90 secondes m'affichera 1m30s.
sinon une idee pour mon soucis de boucle ?
:roll:Code:temptime.getSeconds()/60*100
=>
et hop .5 redevient .3Code:temptime.getSeconds()
Mais sinon il doit ressembler à quoi ton compteur en terme d'affichage final ?
je veu une image pour les minutes, une pour les dizaine de seconde et une derniere pour les secondes.
Le compteur fonctionne avec ma version un peu plus haut je me demandais si il n'y avais pas plus simple a faire.
Et surtout je souhaitais faire afficher plusieurs compteur avec une boucle for mais mon code ne fonctionne tel qu'il ai ecrit.
Jette y un oeil si tu kelk minute a y consacrer. Pour le moment je bloque la dessus.
voili voila
Merci
ben si c'est une horloge :roll:
Utilise le Dater() de js ...
Il me semble que l'objet dont tu parle ne permet pas de recuperer les secondes et les dizaine de seconde de maniere separer. Donc pour le moment mon code reste valable. J'aurais voulu le simplifier mais cela ne semble pas etre possible. Les solutions proposer fonctionne bien sur mais pas pour ce que je souhaite obtenir.
Je reposte mon bout de code:
La syntaxe de ma boucle en incluant i comme parametre a plusieurs endroit comporte t-il des erreurs ?
Merci :ccool:Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66 for (i=1; i<10; i++) { var copieDuNombre = document.obj[i]; var premiernum1 = []; var minute; while (copieDuNombre > 0) { if (Math.floor(copieDuNombre) > 59) { minute = Math.floor(copieDuNombre / 60); copieDuNombre = copieDuNombre - (minute * 60); if (minute == 1) { if (copieDuNombre < 10) { premiernum1.unshift(copieDuNombre % 10); premiernum1.unshift(0); copieDuNombre = Math.floor(copieDuNombre / 10); } } } else { premiernum1.unshift(copieDuNombre % 10); copieDuNombre = Math.floor(copieDuNombre / 10); } if ((copieDuNombre == 0)&&(minute != null)) {premiernum1.unshift(minute); minute = 0;} } var longueur = premiernum1.length; if (longueur == 3) { document.heur1[i] = 'images/compteur/'+premiernum1[0]+'.jpg'; document.heur2[i] = 'images/compteur/'+premiernum1[1]+'.jpg'; document.heur3[i] = 'images/compteur/'+premiernum1[2]+'.jpg'; document.heur1[i].src = 'images/compteur/'+premiernum1[0]+'.jpg'; document.heur2[i].src = 'images/compteur/'+premiernum1[1]+'.jpg'; document.heur3[i].src = 'images/compteur/'+premiernum1[2]+'.jpg'; } else if (longueur == 2) { document.heur1[i] = 'images/compteur/0.jpg'; document.heur2[i] = 'images/compteur/'+premiernum1[0]+'.jpg'; document.heur3[i] = 'images/compteur/'+premiernum1[1]+'.jpg'; document.heur1[i].src = 'images/compteur/0.jpg'; document.heur2[i].src = 'images/compteur/'+premiernum1[0]+'.jpg'; document.heur3[i].src = 'images/compteur/'+premiernum1[1]+'.jpg'; } else if (longueur == 1) { document.heur1[i] = 'images/compteur/0.jpg'; document.heur2[i] = 'images/compteur/0.jpg'; document.heur3[i] = 'images/compteur/'+premiernum1[0]+'.jpg'; document.heur1[i].src = 'images/compteur/0.jpg'; document.heur2[i].src = 'images/compteur/0.jpg'; document.heur3[i].src = 'images/compteur/'+premiernum1[0]+'.jpg'; } else { document.heur1[i] = 'images/compteur/0.jpg'; document.heur2[i] = 'images/compteur/0.jpg'; document.heur3[i] = 'images/compteur/0.jpg'; document.heur1[i].src = 'images/compteur/0.jpg'; document.heur2[i].src = 'images/compteur/0.jpg'; document.heur3[i].src = 'images/compteur/0.jpg'; } }
Oula !!!
et que dirais tu de
pour les dizaines de secondesCode:Math.floor(madate.getSeconds()/10)
puis
et poru les unitésCode:madate.getSeconds() % 10
Tu te bloques inutilement sur des broutilles ...