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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2005
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 12
    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 émérite Avatar de Pollux
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    706
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2005
    Messages : 706
    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

  3. #3
    Membre averti
    Inscrit en
    Novembre 2005
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 12
    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 émérite Avatar de Pollux
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    706
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

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

    Si t'as des problèmes pose en l'énoncée

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

  6. #6
    Membre expérimenté Avatar de vincent63
    Inscrit en
    Octobre 2005
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 198
    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

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

  8. #8
    Membre expérimenté Avatar de vincent63
    Inscrit en
    Octobre 2005
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 198
    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...

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

    Informations forums :
    Inscription : Avril 2005
    Messages : 706
    Par défaut
    comment tu peux etre en deuxième semaine de l'année le 17 janvier?

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

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    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 Expert
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    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 414
    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.

  12. #12
    Membre expérimenté Avatar de vincent63
    Inscrit en
    Octobre 2005
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 198
    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.

+ 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