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 :

ne récupère pas le bon numéro de semaine


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    512
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Juin 2007
    Messages : 512
    Par défaut ne récupère pas le bon numéro de semaine
    Bonjour,

    je souhaite récupérer le numéro de semaine dans l'année de la semaine en cours à partir de la date du jour. Nous sommes actuellement en semaine 11, et par le code je récupère la semaine 12, ce qui fausse mes résultats...

    VOici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    GregorianCalendar calendar =new GregorianCalendar();
    calendar.getInstance();
    java.util.Date date2 = new java.util.Date();
    calendar.setTime(date2);
    int semaine =calendar.get(calendar.WEEK_OF_YEAR);
    System.out.println(semaine);
    Est-ce lié au type de mon calendar?

    Merci de votre aide.

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    La numérotation des semaines peut varier selon les paramètres régionaux...

    Tu ne précises pas la locale, donc tu utilises implicitement la locale par défaut (Locale.getDefault()) qui ne correspond pas forcément à celle que tu souhaites...

    Il serait préférable d'indiquer cette locale :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	Calendar calendar = Calendar.getInstance(Locale.FRANCE);
    	int semaine = calendar.get(Calendar.WEEK_OF_YEAR);
    	System.out.println(semaine);
    a++

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    512
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Juin 2007
    Messages : 512
    Par défaut
    Suite à vos conseils j'ai fait ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    //GregorianCalendar calendar =new GregorianCalendar();
    Calendar calendar = Calendar.getInstance(Locale.FRANCE);
    int semaine =calendar.get(calendar.WEEK_OF_YEAR);
    System.out.println(semaine);
    ou ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    //GregorianCalendar calendar =new GregorianCalendar();
    Calendar calendar = Calendar.getInstance();
    int semaine =calendar.get(calendar.WEEK_OF_YEAR);
    System.out.println(semaine);


    et je récupère toujours 12 au lieu de 11

  4. #4
    Membre éclairé Avatar de Katachana
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2007
    Messages : 755
    Par défaut
    Essaye plutot comme ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Calendar calendar = Calendar.getInstance();
                System.out.println(calendar.get(Calendar.WEEK_OF_YEAR));
    A lire aussi les cours et tutoriels programmation Java : http://java.developpez.com/cours/

  5. #5
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 127
    Par défaut
    Salut
    en fait ce problème e dépend de La définition de la première semaine de l'année
    pour résoudre ce problème tu peut lire la doc suivante
    http://java.sun.com/j2se/1.4.2/docs/...tWeek%28int%29
    l'idée est de spécifier le premier jour de la première semaine via la méthode
    setMinimalDaysInFirstWeek() et ajouter votre local
    exp:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    GregorianCalendar calendar = new GregorianCalendar(Locale.FRANCE);
    bonne chance

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    512
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Juin 2007
    Messages : 512
    Par défaut
    en effet j'ai fait ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    GregorianCalendar calendar =new GregorianCalendar(Locale.FRANCE);
    Calendar.getInstance();
    calendar.setFirstDayOfWeek(1);
    calendar.setMinimalDaysInFirstWeek(5);
    int semaine =calendar.get(calendar.WEEK_OF_YEAR);
    System.out.println(semaine);
    mais ce jour change tous les ans, il faudrait récupérer à chaque fois le numéro de jour de la semaine pour la date du 01/01.

    On peut faire ça? si oui je veux bien une piste?

  7. #7
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 127
    Par défaut
    Salut
    essayer d'ajouter ces lignes à votre code initial
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    GregorianCalendar calendar = new GregorianCalendar(Locale.FRANCE);
    calendar.setMinimalDaysInFirstWeek(3);
    bonne chance

  8. #8
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 127
    Par défaut
    salut
    effectivement ce jour change chaque année mais tu peut le récupérer via la méthode getMinimalDaysInFirstWeek() et à ne pas oublier de définir votre local et le premier jour de semaine pour votre local(dimanche en US,Lundi en Europe ..)
    bonne chance

  9. #9
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Quelle est la version de Java que tu utilises ?

    a++

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

Discussions similaires

  1. [Crystal] transformation d'une date en numéro de semaine
    Par barna dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 24/03/2017, 09h41
  2. [C#] Comment récupérer le numéro de semaine d'une date ?
    Par farfadet dans le forum Windows Forms
    Réponses: 9
    Dernier message: 17/07/2013, 16h33
  3. Réponses: 4
    Dernier message: 09/10/2007, 14h09
  4. [Calendar] Problème de numéro de semaine de l'année
    Par gaia_dev dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 29/11/2004, 11h44
  5. Calcul des numéros de semaine d'un calendrier
    Par Invité dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 06/11/2002, 21h29

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