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] Week Of Year


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    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 [date] Week Of Year
    Bonjour,

    Je souhaite récupérer dans un intervalle de temps toutes les semaines afin de créér une échelle de temps.

    Pour cela j'ai pensé à utiliser WEEK_OF_YEAR et faire un traitement particulier pour les extrémitées.
    Je dois également coupé les semaines se chevauchant sur un mois (j'ai pas trop d'idée pour cette action).

    Et sinon ma question principale est de savoir si l'on peut facilement récupérer le jour de début et de fin à partir d'un numéro de semaine.


    Merci beaucoup d'avance.

  2. #2
    Membre éprouvé Avatar de anisj1m
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    1 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 067
    Par défaut
    tu peut utiliser la class Calendar pour cela

  3. #3
    Membre expérimenté Avatar de coco62
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    237
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 237
    Par défaut
    Bonjour,
    1) Je te propose de faire un parse de date avec le numero de semaine, tu récupère un java.util.Date.
    2) Ensuite tu récupère le jour de la semaine.
    2) Tu ajoute et soustrait le nombre de miliseconde qui vont bien pour avoir la date du lundi et la date du dimanche.


    1)DateFormat
    2)SimpleDateFormat
    3)une addition et une soustraction
    Eric

  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
    Je vais essayer merci

  5. #5
    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
    J'ai trouvé une maniere simple de décomposer l'intervalle de date en semaine. En fait , j'ai fais une boucle qui detecte les lundi et les stock dans une arraylist. Maintenant pour avoir la semaine en totalité j'ai juste a faire lundi+4.

    Par contre pour décomposer la semaine losrqu'elle est a cheval sur deux mois je vois pas trop comment partir.



    Idée => voir si le mois de LUNDI et LUNDI+4 est identique , et dans le cas contraire existe t'il une propriété permettant de récupérer le premier jour d'un mois ? (getFirstDayInMonth ??) et le dernier galement.

    Merci

  6. #6
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Par défaut
    Ben pour avoir le premier jour d'un mois, c'est facile, tu mets le jour à 1, et tu regardes le jour.
    Pour avoir le dernier jour, tu ajoutes un mois, tu mets le jour à 1, et tu enlèves un jour ^^

  7. #7
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 253
    Par défaut
    Bonjour,
    Tu devrais utiliser les méthodes getActualMinimum(int field) et getActualMaximum(int field) de Calendar pour obtenir le premier/dernier jour de la semaine ou du mois:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cal.getActualMinimum(Calendar.DAY_OF_WEEK)
    Tu as les autres constantes DAY_OF_MONTH et DAY_OF_WEEK_IN_MONTH

  8. #8
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private ArrayList<GregorianCalendar> echelleTps = new ArrayList<GregorianCalendar>();
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    public void intervalProjet(String dated,String datef) throws ParseException {
    		GregorianCalendar debut = parseDate2(dated);
    		GregorianCalendar debut2 = parseDate2(dated);
    		GregorianCalendar fin = parseDate2(datef);
    		Interval retour= new Interval();
    		debut.add(GregorianCalendar.DATE,-1);
    		debut2.add(GregorianCalendar.DATE,-1);
     
    		double gap= (fin.getTimeInMillis() - debut.getTimeInMillis() )*( (1E-3/(60*60*24) ));
     
    		   for(i=0;i<gap;i++)
    	    	{
    			 debut.add(GregorianCalendar.DATE,+1);
    			 debut2.add(GregorianCalendar.DATE,+5);	 
    			 if(debut.get(GregorianCalendar.DAY_OF_WEEK)==2){
     
    				 	echelleTps.add(debut);
    				 if(debut.get(GregorianCalendar.MONTH)== debut2.get(GregorianCalendar.MONTH)){
     
    					 echelleTps.add(debut2);
    				 }
    				 else{
    					 debut2.set(GregorianCalendar.DATE,1);
    					 debut2.add(GregorianCalendar.DATE,-1);
    					 echelleTps.add(debut2);
    					 debut2.set(Calendar.DATE,1);
    					 echelleTps.add(debut2);
     
     
    				 }				
    			 }
     
    	    	}
    Voila ce que ca donne , j'ai toujours un bug au niveau du changement de mois, j'ai l'impression que la comparaison entre les mois de debut et debut2 ne se fait pas....

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

Discussions similaires

  1. problème de dates avec + INTERVAL & 'year'
    Par lca94 dans le forum SQL
    Réponses: 2
    Dernier message: 30/06/2009, 09h48
  2. Différence entre dates au format "Year Month Day"
    Par TheCaribouX dans le forum C#
    Réponses: 11
    Dernier message: 04/02/2009, 20h35
  3. Insert date day/month/year
    Par Arnaud62 dans le forum Requêtes
    Réponses: 2
    Dernier message: 02/12/2008, 16h06
  4. Calendar WEEK OF YEAR
    Par xduris dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 01/12/2008, 16h56
  5. date dd/mm/year ou mm/dd/year
    Par AlexFred dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 11/03/2008, 16h09

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