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 :

[Date] Retrouver le mois avec le num de la semaine [FAQ]


Sujet :

Collection et Stream Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 12
    Points : 8
    Points
    8
    Par défaut [Date] Retrouver le mois avec le num de la semaine
    Bonjour je dois parser un gennre de calendrier ou se trouve des chiffres qui correspondent a des jours. Suivant la position a laquelle il se trouve j'arrive a savoir dans quelle semaine on se trouve et donc le mois. Maintenant il faudrait que je convertisse ce numero en date.
    Par exemple en parsant mon fichier et je voit le num 17 à la position 2 de mon tableau(qui comporte 52 cases)
    donc je dois afficher "17 janvier 2006".
    evidemment je pourrai faire plein de tests et savoir mais je pense qu'il doit exister un moyen plus simple. en plus suivant les années les semaines changent donc il me faut que j'utilise la lib date de JAVA. Mais je ne trouve pas l'info...
    Merci de vos reponse

  2. #2
    Membre éclairé Avatar de Pollux
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    706
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2005
    Messages : 706
    Points : 680
    Points
    680
    Par défaut
    T'es allé voir ca?
    http://java.sun.com/j2se/1.5.0/docs/.../Calendar.html

    Avec les données que tu as tu peux facilement créer ta date
    Pour chaque langage existe une faq / N'oubliez pas de lire les règles du forum

  3. #3
    Futur Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    Oui je suis en train de regarder la Javadoc, mais comme je ne suis pas un expert en java je lutte un peu...

  4. #4
    Membre éclairé Avatar de Pollux
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    706
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2005
    Messages : 706
    Points : 680
    Points
    680
    Par défaut
    Continue de lutter!

    Si t'as des problèmes pose en l'énoncée
    Pour chaque langage existe une faq / N'oubliez pas de lire les règles du forum

  5. #5
    Futur Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    il faut que j'utilise quelle methode ? pour faire cela

  6. #6
    Membre actif Avatar de vincent63
    Inscrit en
    Octobre 2005
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 198
    Points : 205
    Points
    205
    Par défaut
    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
    public class TestCalendar {
     
    	public static void main(String[] args) {
    		new TestCalendar();
    	}
     
    	public TestCalendar(){
    		Calendar calendar = new GregorianCalendar();
    		calendar.set(Calendar.YEAR, 2006);
    		calendar.set(Calendar.WEEK_OF_YEAR, 2);
    		calendar.set(Calendar.DAY_OF_MONTH, 17);
    		Date maDate = calendar.getTime();
    		SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
    		String maDateAsString = dateFormat.format(maDate);
    		System.err.println(maDateAsString);
    	}
    }
    et on obtient :
    17/02/2006
    "Ils ne savaient pas que c'était impossible... alors ils l'ont fait." Mark Twain

  7. #7
    Futur Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    Merci vincent

  8. #8
    Membre actif Avatar de vincent63
    Inscrit en
    Octobre 2005
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 198
    Points : 205
    Points
    205
    Par défaut
    Remarque : Il me semble qu'il y a une petite erreur dans le code que je t'ai filé... On aurait dû avoir 17/01/2006 et pas 17/02/2006...
    mais bon, dans l'esprit, c'est quand même ça...
    "Ils ne savaient pas que c'était impossible... alors ils l'ont fait." Mark Twain

  9. #9
    Membre éclairé Avatar de Pollux
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    706
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2005
    Messages : 706
    Points : 680
    Points
    680
    Par défaut
    comment tu peux etre en deuxième semaine de l'année le 17 janvier?
    Pour chaque langage existe une faq / N'oubliez pas de lire les règles du forum

  10. #10
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    la position 2 d'un tableau ca correspond à la position numéro 3 puisque la numération des cases commence à 0, la case 2 est donc la 3ème semaine

    corrige moi si je me trompe

  11. #11
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 413
    Points : 1 993
    Points
    1 993
    Par défaut
    C'est problématique de retrouver le mois avec seulement le numéro de la semaine.

    Que fais-tu quand le changement du mois se fait dans la semaine?

    En plus, le calcul du numéro de la semaine est différent selon la localisation (Exemple: Europe et USA).

    Un bout de code qui assume que lundi est le début de la semaine (ce qui n'est pas le cas chez nos cousins américains, pour eux c'est le dimanche) et il te retourne le mois du lundi.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Calendar calendar = GregorianCalendar.getInstance();
            calendar.set(Calendar.YEAR, 2006);
            calendar.set(Calendar.WEEK_OF_YEAR, 9);
            calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
            SimpleDateFormat dateFormat = new SimpleDateFormat("MMMM", new Locale("fr"));
            System.err.println(dateFormat.format(calendar.getTime()));
    Ce programme te retourne "février" pourtant la semaine n°9 a 5 jours au mois de mars.

    A toi de de l'adapter selon tes besoins.
    Bien le bonjour chez vous
    Jowo

  12. #12
    Membre actif Avatar de vincent63
    Inscrit en
    Octobre 2005
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 198
    Points : 205
    Points
    205
    Par défaut
    Voilà un début de correction :
    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
     
    public class TestCalendar {
     
    	   public static void main(String[] args) {
    	      new TestCalendar();
    	   }
     
    	   public TestCalendar(){
    	      Calendar calendar = new GregorianCalendar();
    	      calendar.set(Calendar.YEAR, 2006);
    	      calendar.set(Calendar.WEEK_OF_YEAR, 2);
    	      calendar.getTime();
    	      calendar.set(Calendar.DAY_OF_MONTH, 17);
    	      Date maDate = calendar.getTime();
    	      SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
    	      String maDateAsString = dateFormat.format(maDate);
    	      System.err.println(maDateAsString);
    	   }
    	}
    En faisant un getTime() sur le calendar après avoir initialisé le WEEK_OF_DAY, l'objet calendar va règler les "conflits" et initialiser les valeurs (le jour en cours, le mois en cours etc).
    Ensuite, on lui précise le numéro du jour dans le mois en cours et hop ça marche.

    Pour bien faire, il faudrait spécifier les informations locales comme le premier jour de la semaine, et le nombre de jours minimum dans une semaine.
    "Ils ne savaient pas que c'était impossible... alors ils l'ont fait." Mark Twain

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

Discussions similaires

  1. Réponses: 12
    Dernier message: 31/03/2007, 08h38
  2. Réponses: 6
    Dernier message: 01/03/2007, 13h57
  3. [Dates] Problème de mois avec un calendrier
    Par popline7 dans le forum Langage
    Réponses: 2
    Dernier message: 11/12/2006, 14h40
  4. [Dates] sélectionner les lignes avec même mois
    Par carelha dans le forum Langage
    Réponses: 2
    Dernier message: 04/12/2006, 15h08
  5. Réponses: 2
    Dernier message: 21/07/2006, 14h04

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