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 130
    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 130
    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 130
    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 130
    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