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 :

[Dates] Obtenir des jours particuliers de la semaine pour une date donnée


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 9
    Par défaut [Dates] Obtenir des jours particuliers de la semaine pour une date donnée
    Bonjour,

    j'essaie de faire fonctionner une méthode qui devrait, pour une Date donnée, renvoyer une ArrayList contenant 2 Dates : le lundi et le dimanche de la semaine de la Date donnée.

    Donc par exemple, si on donne comme paramètre le 20 janvier 2009 (mardi), on devrait recevoir en retour le 19 janvier (lundi) et le 25 janvier (dimanche).

    J'arrive uniquement à obtenir des résultats pour la semaine courante ; il semblerait que lorsque je change la Date pour qu'elle corresponde au paramètre donné, rien n'y fait.. Je reçois toujours le lundi et le dimanche de la date courante.. J'ai lu des infos qui expliquaient que les modifications de dates ne sont faites qu'à l'appel de certaines méthodes, tel que getTimeInMilliSeconds().. Et pourtant j'appelle bien cela.

    Voici mon code source :

    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
    /* Returns an ArrayList with two Dates corresponding to :
    	 * 	- the monday of the week of the parameter
    	 *  - the sunday of the week of the parameter
    	 * If the Date is null, returns null
    	 */ 
    	public static List findWeekBoundariesForDate(Date aDate){
    		if(aDate == null)
    			return null;
    		List weekBoundaries = new ArrayList();
     
    		Calendar startBoundary = Calendar.getInstance();
    		startBoundary.set(aDate.getYear()+1900,aDate.getMonth(),aDate.getDate());
    		startBoundary.set(Calendar.DAY_OF_WEEK,Calendar.MONDAY);
    		Calendar endBoundary = Calendar.getInstance();
    		endBoundary.set(aDate.getYear()+1900,aDate.getMonth(),aDate.getDate());
    		endBoundary.set(Calendar.DAY_OF_WEEK,Calendar.SUNDAY);
     
    		Date startBoundaryDate = new Date(startBoundary.getTimeInMillis());
    		Date endBoundaryDate = new Date(endBoundary.getTimeInMillis());
     
    		weekBoundaries.add(startBoundaryDate);
    		weekBoundaries.add(endBoundaryDate);
     
    		return weekBoundaries;
    	}
    Quelqu'un peut-il m'aider ?

    Merci !

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    startBoundary.set(aDate.getYear()+1900,aDate.getMonth(),aDate.getDate());
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    startBoundary.setTime(aDate);
    Et ca devrait rouler, parce que la tu utilise plein de champs dépréciées de date ^ ^

    Si ca foire toujours, je serais d'avis de

    1) regarder quel jour de la semaine on est
    2) faire un roll sur le jour de la valeur en question (exemple, on est le 3 jour, fait un roll de 2 jours pour le début de semaine)

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 9
    Par défaut
    Super, ça fonctionne simplement avec le setTime !

    Merci beaucoup tchize_ !

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

Discussions similaires

  1. jour de la semaine pour une date donnée
    Par laurentSc dans le forum Langage
    Réponses: 2
    Dernier message: 17/03/2012, 23h58
  2. Réponses: 1
    Dernier message: 01/09/2008, 15h45
  3. obtenir le jour de semaine correspandant à une date donné
    Par titeuf2525 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 29/10/2007, 14h59
  4. Soustraire une date avec des jours et jours ouvrés
    Par celiaaa dans le forum VBA Access
    Réponses: 5
    Dernier message: 31/05/2007, 22h37
  5. Réponses: 14
    Dernier message: 10/08/2006, 15h53

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