IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

exercice js d�butant : date demain


Sujet :

JavaScript

  1. #1
    Membre confirm�
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    F�vrier 2019
    Messages
    80
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 50
    Localisation : France, Val d'Oise (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur Web

    Informations forums :
    Inscription : F�vrier 2019
    Messages : 80
    Par d�faut exercice js d�butant : date demain
    Bonjour, je suis entrain d'apprendre javascript.
    Je fais un exercice de code mais je ne trouve pas la solution.

    Il s'agit de compl�ter le code pour que s'affiche le jour suivant le jour actuel. Auriez-vous une id�e des erreurs � corriger?
    Merci d'avance.

    Voici mon code :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    const jourActuel ="mardi";
    let jourSuivant = "mardi";
    if (jourActuel === "lundi") { joursuivant = "mardi";
    console.log('demain nous serons + jourSuivant');}
    else if (jourActuel === "mardi") {jourSuivant = "mercredi"; 
    console.log('demain nous serons + jourSuivant');}
    else if (jourActuel === "mercredi") {jourSuivant = "jeudi";
    console.log('demain nous serons +{jourSuivant}');}
    else if (jourActuel === "jeudi") {jourSuivant = "vendredi";
    console.log('demain nous serons +{jourSuivant}');}
    else if (jourActuel === "vendredi") {jourSuivant = "samedi";
    console.log('demain nous serons +{jourSuivant}');}
    else if (jourActuel === "samedi") {jourSuivant = "dimanche";
    console.log('demain nous serons +{jourSuivant}');}                              
    else {console.log("il n'y a pas d'autre jour")}

  2. #2
    Expert confirm�
    Avatar de ProgElecT
    Homme Profil pro
    Retrait�
    Inscrit en
    D�cembre 2004
    Messages
    6 132
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 69
    Localisation : France, Haute Savoie (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : Retrait�
    Secteur : Communication - M�dias

    Informations forums :
    Inscription : D�cembre 2004
    Messages : 6 132
    Par d�faut
    Salut

    La syntaxe de tes commandes Console.Log n'est pas correcte.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    if (jourActuel === "lundi") { joursuivant = "mardi";
    console.log('demain nous serons ' + jourSuivant);}
    else if (jourActuel === "mardi") {jourSuivant = "mercredi"; 
    console.log('demain nous serons ' + jourSuivant);}
    else if (jourActuel === "mercredi") {jourSuivant = "jeudi";
    console.log('demain nous serons ' +{jourSuivant});}
    else if (jourActuel === "jeudi") {jourSuivant = "vendredi";
    console.log('demain nous serons ' +{jourSuivant});}
    else if (jourActuel === "vendredi") {jourSuivant = "samedi";
    console.log('demain nous serons ' +{jourSuivant});}
    else if (jourActuel === "samedi") {jourSuivant = "dimanche";
    console.log('demain nous serons '+ {jourSuivant});}                              
    else {console.log("il n'y a pas d'autre jour")}
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont d�pann�s.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Expert confirm�
    Avatar de ProgElecT
    Homme Profil pro
    Retrait�
    Inscrit en
    D�cembre 2004
    Messages
    6 132
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 69
    Localisation : France, Haute Savoie (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : Retrait�
    Secteur : Communication - M�dias

    Informations forums :
    Inscription : D�cembre 2004
    Messages : 6 132
    Par d�faut
    Re

    Pour le fun, un m�me r�sultat avec une autre approche
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    //création d'un tableau des noms des jours de la semaine
    let dayNames = ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'];
    //Récupération de la date du jour
    DateAujourdhui = new Date();
    console.log("DateAujourdhui = "+ DateAujourdhui);
    //ajout d'un jour exprimé en mSc, au jour d'aujourd'hui
    Datedemain = new Date(Number(DateAujourdhui)+86400000);
    console.log("Datedemain = " + Datedemain);
    let NumJ = Datedemain.getDay(); //obtenir le N° du jour de la semaine de la date Datedemain
    //affichage du nom du jour de la semaine par la variable tableau à l'index N° jour
    console.log("demain le nom du jour de la semaine sera " + dayNames[NumJ]);
    NumJ = DateAujourdhui.getDay();//obtenir le N° du jour de la semaine de la date DateAujourdhui
    console.log("donc aujourd'hui le nom du jour de la semaine est " + dayNames[NumJ]);
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont d�pann�s.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  4. #4
    Expert confirm�
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Ao�t 2003
    Messages
    3 684
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activit� : danseur

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 3 684
    Par d�faut
    Ou avec une autre approche encore...
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    const d=new Date();
    const dem=Date.UTC(d.getUTCFullYear(),d.getUTCMonth(),d.getUTCDate()+1);
    console.log("Demain, nous serons",new Intl.DateTimeFormat('default', {weekday:"long"}).format(dem)+".");

  5. #5
    Invit�
    Invit�(e)
    Par d�faut
    Bonjour,

    puisque Diegomarck semble �tre d�butant en JavaScript, je vais avoir une approche plus... p�dagogique.

    0- D'abord, prends l'habitude de mettre use strict au d�but du code JS :
    1- Solution 1 : if / else if / else
    (reprise / correction / optimisation de ton code)

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    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
    'use strict';
     
    const jourActuel ="mardi";
     
    let jourSuivant = "";
    if (jourActuel === "lundi") {
      joursuivant = "mardi";
    }
    else if (jourActuel === "mardi") {
      jourSuivant = "mercredi";
    }
    else if (jourActuel === "mercredi") {
      jourSuivant = "jeudi";
    }
    else if (jourActuel === "jeudi") {
      jourSuivant = "vendredi";
    }
    else if (jourActuel === "vendredi") {
      jourSuivant = "samedi";
    }
    else if (jourActuel === "samedi") {
      jourSuivant = "dimanche";
    }
    else if (jourActuel === "dimanche") {
      jourSuivant = "lundi";
    }
    // affichage
    if( jourSuivant != '')
    {
      console.log("demain nous serons " + jourSuivant);
    } else {
      console.log("il n'y a pas d'autre jour");
    }
    pour info, tu avais oubli� la condition : si ("dimanche") -> "lundi"

    2- Solution 2 : switch / case

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    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
    'use strict';
     
    const jourActuel ="mardi";
     
    let jourSuivant = "";
    switch( jourActuel )
    {
      case "lundi":
        joursuivant = "mardi";
        break;
      case "mardi":
        jourSuivant = "mercredi";
        break;
      case "mercredi":
        jourSuivant = "jeudi";
        break;
      case "jeudi":
        jourSuivant = "vendredi";
        break;
      case "vendredi":
        jourSuivant = "samedi";
        break;
      case "samedi":
        jourSuivant = "dimanche";
        break;
      case "dimanche":
        jourSuivant = "lundi";
        break;
      default:
        jourSuivant = "";
    }
    // affichage
    if( jourSuivant != '')
    {
      console.log("demain nous serons " + jourSuivant);
    } else {
      console.log("il n'y a pas d'autre jour");
    }
    3- Solution 3 : utilisation d'un array des noms de jours
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    'use strict';
     
    const dayNames = ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'];
     
    let jourActuel = "Mardi";
    let jourSuivant = dayNames[(dayNames.indexOf(jourActuel)+1)%7];
     
    // affichage
    if( jourSuivant != '')
    {
      console.log("demain nous serons " + jourSuivant);
    } else {
      console.log("il n'y a pas d'autre jour");
    }
    Explication de cette ligne :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    let jourSuivant = dayNames[(dayNames.indexOf(jourActuel)+1)%7];
    Qu'on peut d�composer en :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    // index ** de l'array "dayNames", pour la valeur de "jourActuel"
    let jourActuel_index = dayNames.indexOf(jourActuel);
    // Index du jour suivant
    let jourSuivant_index = jourActuel_index + 1;
    // si jourActuel = "Samedi", jourSuivant_index vaudra 7. Or, il n'y a pas d'index 7 dans l'array : on aura une erreur.
    // Solution : on utilise le modulo (ou "Reste)
    jourSuivant_index = (jourActuel_index + 1) % 7;
    // Nom du jour suivant
    jourSuivant = dayNames[jourSuivant_index];
    Voir :
    • .indexOf()
      ** IMPORTANT : l'index d'un array JS commence toujours par 0 (z�ro)
    • modulo ou "Reste") *
      Le "modulo" (ou "reste") est "le reste de la division du premier op�rande par le second"

    ex. : "modulo 3"
    • 0%3 = 0
    • 1%3 = 1
    • 2%3 = 2
    • 3%3 = 0
    • 4%3 = 1
    • 5%3 = 2
    • 6%3 = 0
    • 7%3 = 1
    • 8%3 = 2
    • 9%3 = 0

    On voit que TOUS les multiples de 3 renvoient 0 (z�ro).
    C'est CETTE ASTUCE qu'on va exploiter.

    Dans notre cas, dayNames se compose de 7 �l�ments, dont les index vont de 0 � 6.
    Il n'y a pas d'index 7 dans l'array : on aura une erreur si on essaie d'afficher dayNames[7].
    On utilisera donc "modulo 7", car 7%7 = 0, et dayNames[0] existe bien !

    4- Affichage - plusieurs solutions
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    // affichage
    if( jourSuivant != '')
    {
      console.log("demain nous serons " + jourSuivant);
    } else {
      console.log("il n'y a pas d'autre jour");
    }
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    // affichage
    let affichage = '';
    if( jourSuivant != '')
    {
      affichage = "demain nous serons " + jourSuivant;
    } else {
      affichage = "il n'y a pas d'autre jour";
    }
    console.log( affichage );
    Avec Op�rateur ternaire :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    let affichage = ( jourSuivant != '')? "demain nous serons " + jourSuivant : "il n'y a pas d'autre jour";
    console.log( affichage );
    Derni�re modification par Invit� ; 21/08/2019 � 16h50.

  6. #6
    Membre confirm�
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    F�vrier 2019
    Messages
    80
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 50
    Localisation : France, Val d'Oise (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur Web

    Informations forums :
    Inscription : F�vrier 2019
    Messages : 80
    Par d�faut
    Merci pour vos nombreuses r�ponses et solutions!!!

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Recherche une solution sur VB Userform
    Par johntime dans le forum Macros et VBA Excel
    R�ponses: 12
    Dernier message: 11/05/2016, 01h50
  2. Recherche une solution de streaming live.
    Par gibsonSG_76 dans le forum G�n�ral Conception Web
    R�ponses: 0
    Dernier message: 12/02/2015, 00h03
  3. [XL-2007] Rechercher une solution
    Par Robert78 dans le forum Excel
    R�ponses: 13
    Dernier message: 08/12/2014, 11h30
  4. R�ponses: 1
    Dernier message: 10/09/2014, 14h37
  5. recherche une solution
    Par kaddourinfo dans le forum Algorithmes et structures de donn�es
    R�ponses: 2
    Dernier message: 30/01/2008, 17h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo