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

avec Java Discussion :

récupérer le nombre de jours dans un mois de l’année


Sujet :

avec Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    OPERATEUR
    Inscrit en
    Décembre 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : OPERATEUR
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2016
    Messages : 14
    Points : 18
    Points
    18
    Par défaut récupérer le nombre de jours dans un mois de l’année
    bonjour je recherche comment récupérer le nombre de jour dans un mois de l’année



    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
     //Ceci importe la classe Scanner du package java.util
    	import java.util.Scanner; 
      //Ceci importe toutes les classes du package java.util
    	import java.util.*;
     
    public class jour {
    	/*   l'utilisateur entre le nom du mois et l'annee dont il souhaite connaître
    	le nombre de jours  */
     
    	 public static void main(String args[]) {
    		 String  mois ;
    		 int année ;
    		 Scanner clavier = new Scanner(System.in); 
    		 do {
    		 System.out.println("  De quel mois s'agit-il  ? ");
    		           mois = clavier.next ();
                }  while (!mois.equals("janvier")&& !mois.equals("fevrier")
                		&&!mois.equals("mars")&&!mois.equals("avril")
                		&&!mois.equals("mai")&&!mois.equals("juin")
                		&&!mois.equals("juillet")&&!mois.equals("aout")
                		&&!mois.equals("septembre")&&!mois.equals("octobre")
                		&&!mois.equals("novembre")&&!mois.equals("decembre"));
     
     
    	     System.out.println("   De quelle annee ? ");
    		           année = clavier.nextInt ();      
     
    }
    }

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    On peut facilement obtenir le nombre de jour du mois pour une année donnée comme ça month.length(Year.isLead(year), avec year une variable de type int qui contient l'année (par exemple 2017), et month une variable de type Month qui contient le mois.

    Pour passer de String à Month, le plus simple est d'utiliser un switch (on peut le faire directement à partir d'une String si celle-ci contient le nom du mois en anglais, par Month.valueOf( moisEnAnglais.toUpperCase() ). On peut également faire une enum sous le même principe que Month (qui est une enum) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    	public enum MonthFrench {
    		JANVIER,
    		FEVRIER,
    		MARS,
    		;
    		public Month toMonth() {
    			return Month.of(ordinal()+1);
    		}
    	}
    je n'ai mis que les mois de janvier à mars, mais il suffit que tu complètes la liste et ça fonctionnera avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Month month = MonthFrench.valueOf( moisEnFrancais.toUpperCase() );

    Si le but de l'exercice est de ne pas utiliser des classes toutes faites de Java, il te suffit de faire un switch :

    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
    final int nombredejours;
    switch(mois) {
    case "janvier":
    case "mars":
    case "mai":
    case "juillet":
    case "août":
    case "octobre":
    case "décembre":
        nombredejour=31;
        break;
    case "février":
        if ( isLeap(year) ) {
            nombreDeJour=29;
        }
        else {
            nombreDeJour=29;
        }
        break;
    default:
       nombredejours=30;
    }
    Ou bien tu mets les mois dans une liste, ordonnée, et tu utilises le rang du mois :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    int rang = liste.indexOf( mois ); // attention index de 0 à 11 inclus
    if ( rang==1 ) { // février
    }
    else if ( (rang<7 && rang%2==0) || (rang>=7 && rang%2==1) ) { // mois de 31 jours
    }
    else { // mois de 30 jours
    }
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre à l'essai
    Homme Profil pro
    OPERATEUR
    Inscrit en
    Décembre 2016
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : OPERATEUR
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2016
    Messages : 14
    Points : 18
    Points
    18
    Par défaut
    problème pour le mois de février comment faire pour le calculer en français

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    case "février":
    		     if ( isLeap(year) ) {
    		         nombredejour =29;
    		     }

    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    //Ceci importe la classe Scanner du package java.util
    	import java.util.Scanner; 
      //Ceci importe toutes les classes du package java.util
    	import java.util.*;
     
    public class jour {
    	/*   l'utilisateur entre le nom du mois et l'annee dont il souhaite connaître
    	le nombre de jours  */
     
    	 public static void main(String args[]) {
    		 String  mois ;
    		 int année  ;
     
    		 Scanner clavier = new Scanner(System.in); 
    		 do {
    		 System.out.println("  De quel mois s'agit-il  ? ");
    		           mois = clavier.next ();
                }  while (!mois.equals("janvier")&& !mois.equals("fevrier")
                		&&!mois.equals("mars")&&!mois.equals("avril")
                		&&!mois.equals("mai")&&!mois.equals("juin")
                		&&!mois.equals("juillet")&&!mois.equals("aout")
                		&&!mois.equals("septembre")&&!mois.equals("octobre")
                		&&!mois.equals("novembre")&&!mois.equals("decembre"));
     
    		 final int nombredejours ;
    		 switch(mois) {
    		 case "janvier":
    		 case "mars":
    		 case "mai":
    		 case "juillet":
    		 case "août":
    		 case "octobre":
    		 case "décembre":
    		     int nombredejour = 31;
    		     break;
    		 case "février":
    		     if ( isLeap(year) ) {
    		         nombredejour =29;
    		     }
    		     else {
    		         nombredejour =29;
    		     }
    		     break;
    		 default:
    		    nombredejours =30;
    		 }
     
     
    	     System.out.println("   De quelle annee ? ");
    		           année = clavier.nextInt ();      
     
             System.out.println(" il y a "+ nombredejours + " jours dans le mois de " + mois + " de l'année" + année  );        
     
     
    }
    }

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Bah, il faut écrire la méthode isLeap(int) qui détermine si l'année est bissextile ou non.

    Et c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if ( isLeap(year) ) {
    		         nombredejour =29;
    		     }
    		     else {
    		         nombredejour =28;
    		     }
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

Discussions similaires

  1. Récupérer le nombre de jours d'un mois ?
    Par Zebulon777 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 07/10/2017, 12h55
  2. Date : Nombre de jour dans le mois
    Par grunk dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 29/07/2008, 16h48
  3. Réponses: 4
    Dernier message: 28/05/2007, 19h38
  4. [Dates] Calculer le nombre de jours dans le mois suivant...
    Par Life Hunter dans le forum Langage
    Réponses: 5
    Dernier message: 14/03/2006, 00h01
  5. [CR]nombre de jours dans un mois donné
    Par liberio dans le forum Formules
    Réponses: 2
    Dernier message: 20/04/2004, 16h54

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