Bonjour
je suis nouvelle ici et je cherche à faire un décompte en javascriptmais voilà le hic je n'y connais rien.
Voici ce que je voudrais faire :

1 variable : heure actuelle donnée par windows appelée TA
3 constantes
T1 = 9 heures 30 minutes 00 seconde
T2 = 15 heures 30 minutes 00 seconde
T3 = 23 heures 59 minutes 59 secondes

à mettre en JavaScript:

si T3<TA<=T1 le message à transmettre est : "dans T1-TA (en heure minutes secondes) ouverture de Paris
si T1<TA<=T2 le message à transmettre est : "dans T2-TA fermeture de Paris
si T2<TA<=T3 le message à transmettre est : "dans (T3-TA)+T1 ouverture de Paris

Pouvez-vous venir à ma rescousse?

Merci de m'aider
Bonjour et bienvenue à toi scampy,

voici une solution :

var lastDate, T1, T2, T3;

function initTimer(){
    setInterval(timerLoop, 1000);
}

function initDates(){
    T1 = new Date();
    T1.setHours(9);
    T1.setMinutes(30);
    T1.setSeconds(00);

    T2 = new Date();
    T2.setHours(15);
    T2.setMinutes(30);
    T2.setSeconds(00);

    T3 = new Date();
    T3.setHours(23);
    T3.setMinutes(59);
    T3.setSeconds(59);
}

function timerLoop(){
    var now;
    var diff;

    now = new Date();

    if(lastDate == null || lastDate.getDate() < now.getDate()){
        initDates();
    }

    if(now <= T1){
        diff = new Date(T1 - now);
        window.status = 'dans ' + diff.getHours() + ':' + diff.getMinutes() + ':' + diff.getSeconds() + ' ouverture de Paris';
    }else if(T1 < now && now <= T2){
        diff = new Date(T2 - now);
        window.status = 'dans ' + diff.getHours() + ':' + diff.getMinutes() + ':' + diff.getSeconds() + ' fermeture de Paris';
    }else if(T2 < now && now <= T3){
        diff = new Date((T3 - now) + T1);
        window.status = 'dans ' + diff.getHours() + ':' + diff.getMinutes() + ':' + diff.getSeconds() + ' ouverture de Paris';
    }

    lastDate = now;
}

initTimer();


Voila, ce code t'affichera le texte voulu dans la barre d'état de ton navigateur.
Si tu veux l'afficher ailleurs, il faudrait que tu mettes une peu de code;

[EDIT]
Modification du code : lastDate.getDate() > now.getDate() est devenu lastDate.getDate() < now.getDate()
Modifié par bilhackmac (27 Jan 2011 - 10:23)
Merci c'est super gentil d'avoir travaillé comme tu l'as fait.

Je voudrais insérer ce décompte dans une page de mon site. Je travaille avec dreamweaver, quel est le code que je dois mettre et entre quelles balises?

Voiçi la page du site (provisoire c'est pour un exam)
http://boursicotons.pagesperso-orange.fr/Boursicot/

Tu remarqueras un petit décompte à droite, c'est ce que j'ai pu prendre sur le sute Investit.fr, mais chez moi il ne marche pas bien.
C'est là que je voudrais mettre le tiens à la place.

Merci encore de ton aide
Je suis confuse d'être si nulle Smiley confused
Bonjour,

je me dois de te rappeler ce point : http://forum.alsacreations.com/help.php#regle16

Nous essayons ici d'avoir une méthode d'apprentissage plutôt que de fast-food où on livre les réponses toutes faites.
Le but est que les membres viennent ici pour échanger des points de vue, apprendre des techniques et découvrent des méthodes de travail qui peuvent leur servir par la suite.
En livrant des réponses ou des codes tout faits, le demandeur n'a rien appris. Pire, il risque de ne pas pouvoir adapter le code à des besoins différents, etc.

Un proverbe dit : "Si un collègue a faim, tu peux lui offrir un poisson; mais tu peux aussi lui apprendre à pêcher ainsi il ne sera plus dépendant"



Pour ce qui est de l'endroit où placer le code, je pense que faire la recherche toi même, plutôt que d'attendre que quelqu'un ne te fasse ton travail, ne serait pas bien difficile.


ps. : le comic sans, pour un site financier, c'est pire qu'un "Kerviel je t'aime"...
Modifié par Laurie-Anne (27 Jan 2011 - 13:35)
Alors voici la nouvelle fonction timerLoop pour que cela marche sur ton site :


function timerLoop(){
    var now;
    var h, m, s, msg;
    var diff;

    now = new Date();

    if(lastDate == null || lastDate.getDate() < now.getDate()){
        initDates();
    }

    h = document.getElementById('SWITCH_heures');
    m = document.getElementById('SWITCH_minutes');
    s = document.getElementById('SWITCH_secondes');
    msg = document.getElementById('SWITCH_message');

    if(now <= T1){
        diff = new Date(T1 - now);
        h.innerHTML = diff.getHours() + 'h ';
        m.innerHTML = diff.getMinutes() + 'm ';
        s.innerHTML = diff.getSeconds() + 's : ';
        msg.innerHTML = 'ouverture de Paris';
    }else if(T1 < now && now <= T2){
        diff = new Date(T2 - now);
        h.innerHTML = diff.getHours() + 'h ';
        m.innerHTML = diff.getMinutes() + 'm ';
        s.innerHTML = diff.getSeconds() + 's : ';
        msg.innerHTML = 'fermeture de Paris';
    }else if(T2 < now && now <= T3){
        diff = new Date((T3 - now) + T1);
        h.innerHTML = diff.getHours() + 'h ';
        m.innerHTML = diff.getMinutes() + 'm ';
        s.innerHTML = diff.getSeconds() + 's : ';
        msg.innerHTML = 'ouverture de Paris';
    }

    lastDate = now;
} 


A noté qu'il faudra que tu désactives la mise à jour du décompte actuellement présent si tu veux que ça marche correctement.



[EDIT]
@Laurie-Anne : Je suis d'accord avec ce principe et dans l'absolu, scampy n'a pas demander à ce qu'on lui ponde le code tout fait, elle a juste demander de l'aide. J'ai donc fait ce petit bout de code simple car je pense que l'on apprend mieux sur des cas concret et dont on a besoin. Libre à elle maintenant d'étudier ce code (ou pas) ainsi que de le comprendre si elle à envie de progresser.
Modifié par bilhackmac (27 Jan 2011 - 13:57)
Message pour Laurie Anne
Je cherche depuis plusieurs jours. Je n’ai jamais fait un semblant de site avant ; j’ai du découvrir le HTML CSS JavaScripts sans compter le maniement de dreamweaver qu’on m’a passé pour l’occasion en quelques heures.
Mon truc à moi c’est l’ingénierie statistique et informatique de la finance et si je n’avais pas à faire en peu de temps ce pseudo site, crois moi j’aurais cherché et cherché encore car j’aime bien ça.
Quoi qu’il en soit, je te remercie d’avoir pris le temps de me répondre.

Bien cordialement
Modifié par scampy (27 Jan 2011 - 14:03)
...

À partir du moment où tu parles d'exam, je trouve anormal que tu demandes qu'on te fasse ton travail...


bilhackmac > ce qui me pose problème c'est quen quelqu'un a qui on donne un code tout fait ne prenne pas la peine de faire une recherche sur google sur les bases de JS pour voir où placer le code.
Merci Bilhackmac, je vais essayé de m'en sortir avec ça.

Pour Laurie : je n'ai jamais demandé que l'on me fasse mon travail, simplement un coup de main pour ce qui n'est pas à proprement parlé "mon travail" mais un détail de mise en forme..
Bon laisse tomber Laurie !
Modifié par scampy (27 Jan 2011 - 14:21)