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 :

Une semaine de l'année du jeudi au mercredi


Sujet :

avec Java

  1. #1
    Membre averti Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Points : 355
    Points
    355
    Par défaut Une semaine de l'année du jeudi au mercredi
    Bonjour,

    Je récupère actuellement la semaine de l'année concernant une date que je récupère.
    J'aimerai que toutes les 1ère semaines commencent le jeudi et se termine le mercredi et non du lundi au dimanche.

    Je m'explique.

    Exemple:
    - la 1er semaine de l'année 2012 devra être du jeudi 5 Janvier au mercredi 11 janvier 2012.
    - la 2ème semaine de l'année 2012 sera du jeudi 12 janvier 2012 au mercredi 18 janvier 2012.
    -Ainsi de suite...

    Actuellement, j'arrive juste à récupérer la semaine de l'année(du lundi au dimanche) comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    datextract = formatter.parse(date_extract);
    calendar.setTime(datextract);
    int semaine = calendar.get(Calendar.WEEK_OF_YEAR);
    Donc ce que je souhaite faire, c'est une condition qui permettra de dire:

    si la date tombe un jeudi{
    semaine recoit 1
    }

    Voilà, j'espère que vous m'avez compris....

  2. #2
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  3. #3
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Et éventuellement Calendar.setMinimalDaysInFirstWeek() à mettre à 7 ou autre chose.
    Parce que bon, si la première semaine commence le jeudi 5 Janvier, ça veut dire que les 4 premiers jours de l'année, plus de la moitié d'une semaine, ne sont pas dans la première semaine de l'année. Plutôt inhabituel, et pas le comportement par défaut.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre averti Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Points : 355
    Points
    355
    Par défaut
    Merci ca fonctionne !!

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2008
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mexique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2008
    Messages : 328
    Points : 459
    Points
    459
    Par défaut
    Citation Envoyé par thelvin Voir le message
    Et éventuellement Calendar.setMinimalDaysInFirstWeek() à mettre à 7 ou autre chose.
    Parce que bon, si la première semaine commence le jeudi 5 Janvier, ça veut dire que les 4 premiers jours de l'année, plus de la moitié d'une semaine, ne sont pas dans la première semaine de l'année. Plutôt inhabituel, et pas le comportement par défaut.
    Salut,

    C'est que la semaine précédente débutait le jeudi 29 décembre 2011 et terminait le mercredi 4 janvier et était la dernière semaine de 2011 non ?

    Cordialement,

    Dan

  6. #6
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par danimo Voir le message
    C'est que la semaine précédente débutait le jeudi 29 décembre 2011 et terminait le mercredi 4 janvier et était la dernière semaine de 2011 non ?
    Absolument. Et vu que cette semaine avait 3 jours en 2011 et 4 jours, donc plus, en 2012, on s'attend d'habitude à ce qu'elle soit la première de 2012.

    D'où la nécessité probable de setMinimalDaysInFirstWeek() pour changer le comportement par défaut, et dire que la première semaine de l'année doit contenir 7 jours dans l'année (en tout cas plus de 4).
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre averti Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Points : 355
    Points
    355
    Par défaut
    J'ai enlever résolu car je me suis rendu compte qu'il y'a une erreur.

    En effet, je fait ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    date_extract = row.getCell(0).getStringCellValue().substring(3,13);//on récupère la date
    System.out.println("date_extract: "+date_extract);
    // Date actuelle
    datextract = formatter.parse(date_extract);
    calendar.setTime(datextract);
    calendar.setMinimalDaysInFirstWeek(4);// fixe le début d'une semaine le JEUDI au MERCREDI SOIR
    System.out.println("SEMAINE: "+calendar.getMinimalDaysInFirstWeek());// permet de récupérer la semaine du JEUDI au MERCREDI SOIR
    semaine = calendar.getMinimalDaysInFirstWeek();//récupérer la semaine dans l'année pour faire la comparaison avec les onglet du fichier de destination
    //System.out.println(calendar.get(Calendar.WEEK_OF_YEAR));
    System.out.println("semaine 'Le': "+semaine);
    date_extract recoit 26/01/2012.

    Le 26/01/2012 tombe à la semaine 5 (rappel: chaque début de semaine tombe le Jeudi et se termine le mercredi soir avec calendar.setMinimalDaysInFirstWeek(4)).

    OR, le :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    System.out.println("SEMAINE: "+calendar.getMinimalDaysInFirstWeek());
    m'affiche:
    Alors qu'il doit m'afficher :
    SEMAINE: 5

    Y'a un gros souci là!
    Y'a quelque chose que j'ai pas piger...

  8. #8
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par mouss4rs Voir le message
    Y'a un gros souci là!
    Y'a quelque chose que j'ai pas piger...
    C'est le moins qu'on puisse dire. Certes, comme je l'ai dit, tu vas avoir besoin de setMinimalDaysInFirstWeek(), mais :
    - Ça ne te dispense absolument pas de setFirstDayOfWeek()
    - Ça ne te dispense absolument pas de get(Calendar.WEEK_OF_YEAR)
    - À quoi getMinimalDaysInFirstWeek() pourrait bien te servir, je te le demande ? C'est le set dont tu as besoin.
    - Tu aurais pu lire la documentation de ces méthodes, pour comprendre à quoi elles servent et pourquoi tu en as besoin.
    - Et même, tu comprends sûrement un peu l'anglais, non ? Tu trouves que ça a du sens, ce que tu écris ? Tu as l'habitude que les noms de classes et méthodes en Java n'aient pas le moindre sens ?

    Edit : par ailleurs, avec l'exemple que tu nous as montré au début, le jeudi 26 Janvier 2012 est bel et bien le premier jour de la 4e semaine de l'année.
    Mais ça ne veut pas dire que le code que tu nous montres soit juste. Il renvoie 4, parce que 4 est ce que tu as mis dans setMinimalDaysInFirstWeek(). (On se demande bien pourquoi d'ailleurs. C'est la valeur par défaut, et toi d'après ce que tu dis tu as besoin de 7.)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  9. #9
    Membre averti Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Points : 355
    Points
    355
    Par défaut
    En faite :

    semaine doit récupéré 5.
    J'ai fait:
    calendar.setTime(datextract);//on récupère la date
    calendar.setFirstDayOfWeek(4);// on fixe le début d'une semaine le JEUDI au MERCREDI SOIR
    semaine= calendar.get(Calendar.WEEK_OF_YEAR));

    j'obtiens toujours semaine 4 pour la date du 26/01/2012 alors que ce devrait-être 5.

    Je comprend pas là.

  10. #10
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par mouss4rs Voir le message
    semaine doit récupéré 5.
    ??? Pourquoi ?
    Si on compte sur le calendrier, ça tombe sur la 4e semaine, pas la 5e...

    Citation Envoyé par mouss4rs Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    calendar.setFirstDayOfWeek(4);// on fixe le début d'une semaine le JEUDI au MERCREDI SOIR
    Je comprends pas cette ligne :
    - "on fixe le début d'une semaine le JEUDI au MERCREDI SOIR"
    => Tu te rends bien compte que ça veut rien dire ton truc ?
    Soit on fixe le début d'une semaine le jeudi, soit on le fixe le mercredi. On ne fixe pas un début sur un intervalle de tant à tant.

    - Pourquoi 4 ? Ça veut dire quoi, 4 ?
    Pour info, la constante Calendar.THURSDAY, qui désigne jeudi comme son nom l'indique, vaut 5. Pas 4.
    Et de toute façon on s'en tape. Si on veut le jeudi on fait Calendar.THURSDAY, on fait pas autre chose.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  11. #11
    Membre averti Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Points : 355
    Points
    355
    Par défaut
    Parce que mon extract date du 26/01/2012 (jeudi) donc semaine 5 et non semaine 4.

    Le 25/01/2012 (mercredi), c'est semaine 4.

    Maintenant, je fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    datextract = formatter.parse(date_extract);
    calendar.setTime(datextract);
    calendar.setFirstDayOfWeek(Calendar.THURSDAY);// fixe le début d'une semaine le JEUDI au MERCREDI SOIR
    System.out.println("SEMAINE: "+calendar.getFirstDayOfWeek());
    semaine = calendar.getFirstDayOfWeek();//récupérer la semaine dans l'année pour faire la comparaison avec les onglet du fichier de destination
    Pour la date du 26/01/2012, j'ai :
    Ce qui est correcte.

    Maintenant, pour la date du 25/01/2012, j'ai:
    ce qui n'est pas correcte !

  12. #12
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Tu affiches la mauvaise chose dans ton println pfffffffffff....

    Le jeudi est le cinquième jour de la semaine, il est donc normal que calendar.getFirstDayOfWeek() renvoie 5.
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  13. #13
    Membre averti Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Points : 355
    Points
    355
    Par défaut
    Merci sinok !
    c'est la chaleur qui m'empeche de travailler au bureau là dur dur !

    réponse:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    datextract = formatter.parse(date_extract);
    calendar.setTime(datextract);
    calendar.setFirstDayOfWeek(Calendar.THURSDAY);// fixe le début d'une semaine le JEUDI au MERCREDI SOIR
    semaine = calendar.get(Calendar.WEEK_OF_YEAR);

  14. #14
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Content que ça te plaise, mais ça n'a toujours rien à voir avec ce que tu demandais au début.

    Au début tu voulais que le jeudi 5 soit dans la première semaine, donc le jeudi 12 dans la 2nde, le jeudi 19 dans la 3e et le jeudi 26 dans la 4e... -_-°
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  15. #15
    Membre averti Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Points : 355
    Points
    355
    Par défaut
    Oui en faite moi aussi je le pe nsais mais d'après la personne:

    - la 1er semaine de l'année 2012 est du jeudi 29 Décembre au mercredi 4 janvier 2012.

  16. #16
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par mouss4rs Voir le message
    Oui en faite moi aussi je le pe nsais mais d'après la personne:

    - la 1er semaine de l'année 2012 est du jeudi 29 Décembre au mercredi 4 janvier 2012.
    Oui ben techniquement ça aurait pu être bien de le mentionner dès que tu avais décidé de passer à ça, histoire qu'on sache un peu de quoi on parle et qu'est-ce qu'on cherche.

    'Fin bon...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 12/11/2014, 18h05
  2. Réponses: 1
    Dernier message: 26/10/2009, 15h51
  3. Une semaine de Congés payés a partir du jeudi.
    Par pikachu56 dans le forum Congés
    Réponses: 9
    Dernier message: 26/08/2009, 20h40
  4. Une semaine + une année = delai
    Par Boolean69 dans le forum Access
    Réponses: 6
    Dernier message: 26/06/2006, 10h16

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