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

Langage Java Discussion :

[Date] Grouper des dates par semaine


Sujet :

Langage Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 21
    Points : 22
    Points
    22
    Par défaut [Date] Grouper des dates par semaine
    Bonjour a tous !

    J'ai une collection d'objets representant des mesures et possedant un champ date. Je voudrais les classer en groupant par semaine.
    Comment fait-on pour savoir si deux instances de java.util.Date sont dans la meme semaine (i.e. entre le lundi et la dimanche de la meme semaine) ?

    Merci beaucoup !

  2. #2
    Membre éprouvé
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Points : 1 085
    Points
    1 085
    Par défaut
    Salut,

    Regarde et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Calendar.get(Calendar.WEEK_OF_YEAR);
    A+

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 21
    Points : 22
    Points
    22
    Par défaut
    C'est ce que j'ai fait. J'ai produit ce bout de code réutilisable :

    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
     
    import java.lang.reflect.InvocationTargetException;
     
    import java.util.ArrayList;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.GregorianCalendar;
    import java.util.Hashtable;
    import java.util.List;
     
    import org.apache.commons.beanutils.PropertyUtils;
     
    public final class TimeArranger<T>
    {	
    	private String propertyName;
    	private TimeArrangement arrangeType;
     
    	private GregorianCalendar cal;
     
    	public TimeArranger()
    	{
    		cal = new GregorianCalendar();
    		propertyName = "date";
    		arrangeType = TimeArrangement.WEEK;
    	}
     
    	public TimeArranger( String propertyName, TimeArrangement arrangeType )
    	{
    		cal = new GregorianCalendar();
    		this.propertyName = propertyName;
    		this.arrangeType = arrangeType;
    	}
    	public TimeArrangement getArrangeType() { return arrangeType; }
    	public void setArrangeType( TimeArrangement arrangeType ) { this.arrangeType = arrangeType; }
     
    	public String getPropertyName()	{ return propertyName; }
    	public void setPropertyName( String propertyName ) { this.propertyName = propertyName; }
     
    	public Hashtable< Integer, List<T> > arrange(List<T> list)
    		throws TimeArrangerException
    	{
    		Hashtable< Integer, List<T> > result = new Hashtable<Integer, List<T>>();
     
    		try
    		{
    			Date d;
    			int index;
    			for(T bean : list)
    			{
    				d = this.readDateProperty( bean );
    				cal.setTime( d );
    				index = cal.get( this.getCalendarIntType() );
     
    				if(result.get( index ) == null)
    				{
    					result.put( index, new ArrayList<T>());
    				}
    				result.get( index ).add( bean );
    			}
    		}
    		catch ( IllegalAccessException iae ) { throw new TimeArrangerException(iae); }
    		catch ( InvocationTargetException ite ) { throw new TimeArrangerException(ite); }
    		catch ( NoSuchMethodException nsme ) { throw new TimeArrangerException(nsme); }
    		catch ( ClassCastException cce ) { throw new TimeArrangerException(cce); }
     
    		return result;
    	}
     
    	private int getCalendarIntType()
    	{
    		if(TimeArrangement.MONTH.equals( arrangeType )) return Calendar.MONTH;
    		else return Calendar.WEEK_OF_YEAR;
    	}
     
    	private Date readDateProperty( T bean ) 
    		throws IllegalAccessException, InvocationTargetException, NoSuchMethodException, ClassCastException
    	{
    		Object value = PropertyUtils.getProperty( bean, propertyName );
    		return (Date) value;
    	}
     
    	public enum TimeArrangement
    	{
    		WEEK,
    		MONTH
    	}
     
    }
    Merci !

  4. #4
    Membre éprouvé
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Points : 1 085
    Points
    1 085
    Par défaut
    Tu mets

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

Discussions similaires

  1. Grouper des dates par semaines
    Par Nour08 dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 29/07/2011, 10h43
  2. Grouper des valeurs par date
    Par PIEPLU dans le forum Langage SQL
    Réponses: 6
    Dernier message: 12/06/2011, 23h38
  3. grouper des dates par mois?
    Par Hydex dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 28/06/2007, 17h00
  4. [Dates] Manipulation des dates/semaines
    Par NoiBe dans le forum Langage
    Réponses: 2
    Dernier message: 20/04/2007, 16h41
  5. [CR]grouper des dates par semaines, mais semaines FR !
    Par neo.51 dans le forum SAP Crystal Reports
    Réponses: 11
    Dernier message: 18/05/2004, 20h43

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