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

Collection et Stream Java Discussion :

Récupérer le jour de la semaine


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de ze veritable farf
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    152
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 152
    Par défaut Récupérer le jour de la semaine
    Bonjour,

    Je développe actuellement une application Servlet / JSP et j'aurais besoin de connaitre le jour correspondant à une date.

    J'ai regardé du coté de Date, SimpleDate, Calendar ... mais je n'ai pas réussi à m'en sortir.

    Quelqu'un saurait-il m'indiquer comment procéder ?

    Merci d'avance pour votre aide.

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 895
    Par défaut
    Salut,
    pour récupérer le jour de la semaine il suffit de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cal.get(Calendar.WEEK_OF_YEAR);
    Cela te donnera un int qui correspond au jour de la semaine par exemple pour lundi Calendar.MONDAY

  3. #3
    Membre confirmé Avatar de ze veritable farf
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    152
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 152
    Par défaut
    Merci de ta reponse ellene mais avec ce code, la variable cal est inconnue ! Normal elle n'est pas déclarée. Peux tu me dire comment tu la declare et tu l'initialise. Merci.

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 895
    Par défaut
    Ben si tu veux la date d'aujourd'hui tu peux faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Calendar cal = new Calendar();
    Et puis si tu as une date spécifique à mettre tu peux utiliser la méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     void set(int year, int month, int date)

  5. #5
    Membre confirmé Avatar de ze veritable farf
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    152
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 152
    Par défaut
    En fait j'ai une erreur sur cette ligne :

    Citation Envoyé par ellene
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Calendar cal = new Calendar();
    Ca me dit :

    Calendar is abstact; cannot de instantiated

  6. #6
    Membre confirmé Avatar de ze veritable farf
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    152
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 152
    Par défaut
    Je suis un peu perdu ! Je trouve que c'est pas facile de gérer les date en JAVA quand même !

  7. #7
    Membre éprouvé
    Avatar de moritan
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2005
    Messages
    687
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juin 2005
    Messages : 687
    Par défaut
    Citation Envoyé par ellene
    Salut,
    pour récupérer le jour de la semaine il suffit de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cal.get(Calendar.WEEK_OF_YEAR);
    Cela te donnera un int qui correspond au jour de la semaine par exemple pour lundi Calendar.MONDAY
    Donne plutot le numero de la semaine....
    c'est plutot DAY_OF_WEEK pour le jour de la semaine.

    Citation Envoyé par ze veritable farf
    Merci de ta reponse ellene mais avec ce code, la variable cal est inconnue ! Normal elle n'est pas déclarée. Peux tu me dire comment tu la declare et tu l'initialise. Merci.
    Tu pousses pas un peu là, regarde la Javadoc, et essaye d'avoir un peu de recule...
    On est pas la pour te faire toute ton appli....


    çà devrait faire ton bonheur...
    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
    GregorianCalendar calendar =new GregorianCalendar();
    	calendar.setTime(new Date());
    	int today =calendar.get(calendar.DAY_OF_WEEK);
     
    	switch (today) {
    	case GregorianCalendar.MONDAY:
    		//on est lundi
    		break;
    	case GregorianCalendar.TUESDAY:
    		//on est mardi
    		break;
     
    		///etc etc
     
    	default:
    		//ça devrait pas erreur
    		break;
    	}

  8. #8
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2013
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 56
    Par défaut
    Citation Envoyé par ze veritable farf Voir le message
    Bonjour,

    je développe actuellement une application Servlet / JSP et j'ai besoin de connaitre le jour correspondant à une date mais je ne sait pas comlment faire. J'y ai deja passé un temps fou sans resultats. J'ai regardé du coté de Date, SimpleDate, Calendar ... mais je n'ai pas réussi à m'en sortir. Pourriez vous m'aider SVP ?
    ...reprenant le JAVA après quelques années d'arrêt... je me retrouve de nouveau concerné à ce problème de jour de la semaine d'une date...

    après quelques recherche, voici ma contribution.

    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
    // initialisation des 'convertisseur' de Date
    SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
    SimpleDateFormat jourSemaine = new SimpleDateFormat("E");
     
     
    // Création d'une table de conversion entre le nom du jour de la semaine et son code (1=Lundi, 2=Mardi...)
    Hashtable hashDayWeek = new Hashtable(7);
    for (int indice=1; indice<=7; indice++) {
    	Date refDate = new Date(113,6,indice); //on prend en référence la semaine du 1 au 7 juillet 2013 ! 
    	hashDayWeek.put(jourSemaine.format(refDate),indice);
    }
     
    //exemple : 
    Date dateDebut = new Date();
    System.out.println(dateFormat.format(dateDebut));
    System.out.println(hashDayWeek.get(jourSemaine.format(dateDebut)));
    Le principe reste l'utilisation du jour de la semaine en "claire". Pour la traduction, je créer une table dynamiquement, de manière à ne pas avoir de problème avec les NLS_LANGUAGE...

  9. #9
    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 : 55
    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
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par patrick72 Voir le message
    ...reprenant le JAVA après quelques années d'arrêt... je me retrouve de nouveau concerné à ce problème de jour de la semaine d'une date...

    après quelques recherche, voici ma contribution.

    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
    // initialisation des 'convertisseur' de Date
    SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
    SimpleDateFormat jourSemaine = new SimpleDateFormat("E");
     
     
    // Création d'une table de conversion entre le nom du jour de la semaine et son code (1=Lundi, 2=Mardi...)
    Hashtable hashDayWeek = new Hashtable(7);
    for (int indice=1; indice<=7; indice++) {
    	Date refDate = new Date(113,6,indice); //on prend en référence la semaine du 1 au 7 juillet 2013 ! 
    	hashDayWeek.put(jourSemaine.format(refDate),indice);
    }
     
    //exemple : 
    Date dateDebut = new Date();
    System.out.println(dateFormat.format(dateDebut));
    System.out.println(hashDayWeek.get(jourSemaine.format(dateDebut)));
    Le principe reste l'utilisation du jour de la semaine en "claire". Pour la traduction, je créer une table dynamiquement, de manière à ne pas avoir de problème avec les NLS_LANGUAGE...
    ou pourquoi faire simple quand on peut faire compliqué

    Ca marche nickel les Calendar pour obtenir le jour de la semaine, pour peu qu'on suive la doc...

    Pourquoi utiliser une Hashtable (thread-safe pour quoi faire ici ?) en plus ?
    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.

  10. #10
    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 : 55
    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
    Billets dans le blog
    2
    Par défaut
    Je donne une méthode générique, multi langue, pour ceux qui chercherait et serait tenté d'utiliser le code du post précédent :

    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
     
    /**
     * Retourne le nom du jour dans la langue de la locale courrante.
     */
    public static String getCurrentDayName() {
        return getCurrentDayName(Locale.getDefault());
    }
     
    /**
     * Retourne le nom du jour dans la langue de la locale spécifiée.
     */
    public static String getCurrentDayName(Locale locale) {
       return new DateFormatSymbols(locale).getWeekdays()[getCurrentDayIndex(locale)];
    }
     
    /**
     * Retourne le numéro du jour actuel (Dimanche=0, Lundi=1...)
     */
    private static int getCurrentDayIndex(Locale locale) {
     
      return Calendar.getInstance(locale).get(Calendar.DAY_OF_WEEK);
     
    }
    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.

  11. #11
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par joel.drigo Voir le message
    Je donne une méthode générique, multi langue, pour ceux qui chercherait et serait tenté d'utiliser le code du post précédent :
    Good

    J'ai deux questions, à propos de getCurrentDayIndex() :

    - À quoi sert le paramètre Locale ?
    Il me semble que les jours de la semaine ça marche pareil dans tous les calendriers que Calendar.getInstance() pourrait possiblement renvoyer. (Le calendrier révolutionnaire, par exemple, me semble avoir peu de chances d'y apparaître un jour. D'ailleurs même si c'était possible, je ferais un new GregorianCalendar() plutôt qu'imposer un paramètre.)

    - Le calendrier n'est-il pas censé être déjà instancié à la date et heure en cours ?
    Du coup le setTimeInMillis() semble un peu redondant.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  12. #12
    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 : 55
    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
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par thelvin Voir le message
    Good

    J'ai deux questions, à propos de getCurrentDayIndex() :

    - À quoi sert le paramètre Locale ?
    Il me semble que les jours de la semaine ça marche pareil dans tous les calendriers que Calendar.getInstance() pourrait possiblement renvoyer. (Le calendrier révolutionnaire, par exemple, me semble avoir peu de chances d'y apparaître un jour. D'ailleurs même si c'était possible, je ferais un new GregorianCalendar() plutôt qu'imposer un paramètre.)
    A vrai dire c'est bien parce que j'en sais rien que je passe là locale : à partir du moment ou j'ai une méthode qui prend la locale en paramètre, je me dis, dès fois que, je sais pas dans une locale quelconque, çà pourrait jouer... peut être qu'on aura des calendriers des années de 403 semaines de 16 jours sur le énième satellite de la planète Mashintruk un jour Tu me diras que c'est plus le calendrier Gregorien du coup... en fait j'aurais surement dû écrire Calendar.getInstance(locale);



    Citation Envoyé par thelvin Voir le message
    - Le calendrier n'est-il pas censé être déjà instancié à la date et heure en cours ?
    Du coup le setTimeInMillis() semble un peu redondant.
    La j'avoue que je m'étais pas posé la question et que j'en savais rien. Je le savais pour un new java.util.Date(). Si c'est le cas pour l'instance Calendar : c'est vrai que c'est redondant. Va falloir que je repasse mon code en revue du coup pour voir si je l'ai pas fait ailleurs
    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.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 18/04/2008, 14h40
  2. Récupérer le jour de la semaine.
    Par leduc26 dans le forum C++Builder
    Réponses: 4
    Dernier message: 14/04/2008, 09h51
  3. Récupérer premier jour de la semaine en cours?
    Par cortex024 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 06/03/2008, 11h33
  4. Réponses: 7
    Dernier message: 01/12/2007, 02h23
  5. [Dates] comment récupérer le jour de la semaine ?
    Par magic8392 dans le forum Langage
    Réponses: 5
    Dernier message: 13/09/2005, 15h01

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