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 :

Calendar : Récupérer le premier jour de la semaine


Sujet :

Collection et Stream Java

  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 1
    Par défaut Calendar : Récupérer le premier jour de la semaine
    Bonjour,

    Je désire, à partir d'une date, récupérer la date du premier jour de la semaine.
    L'API calendar n'est pas très claire, je n'y arrive pas.

    Voilà ce que j'ai fais pour l'instant :

    GregorianCalendar calendar = new GregorianCalendar();
    calendar.set(2007, 4, 2);
    int week = calendar.get(calendar.WEEK_OF_YEAR); // Me permet de récupérer la semaine 18

    int day = calendar.getActualMinimum(calendar.DAY_OF_WEEK); // Me retourne 1, alors que je veux retourner le 30 avril, qui est le premier jour de la semaine.

    Comment puis je faire ?

    Merci

  2. #2
    Membre habitué
    Inscrit en
    Mars 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 12
    Par défaut
    Salut,

    en fait c'est très simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public static Date getDatePremierJourSemaine(Date d1) { 
        final Calendar date = new GregorianCalendar();
        date.setTime(d1);
     
    //ici on va juste décrementer la date jusqu'a tomber sur le premier jour de la semaine.
        while (date.get(Calendar.DAY_OF_WEEK) != Calendar.MONDAY) {
             date.add(Calendar.DAY_OF_WEEK,-1);
        }
     
        return date.getTime();
    }
    NB : fait attention avec la manipulation du GregorianCalendar
    GregorianCalendar calendar = new GregorianCalendar();
    calendar.set(2007, 4, 2); Attention c' le mois de mai, il faut mieux utiliser les constantes, comme Calendar.APRIL il retourne 3, puisque le mois de janvier vaut 0.

    bye David.

  3. #3
    Membre émérite Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Par défaut
    ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Calendar cal = Calendar.getInstance();
    cal.setTime(new SimpleDateFormat("dd/MM/yyyy").parse("01/04/2007"));
    cal.set(Calendar.DAY_OF_WEEK,Calendar.MONDAY);
    System.out.println(cal.get(Calendar.DAY_OF_MONTH));
    ça a l'air de retourner le premier jour de la semaine (si le lundi est le premier jour de la semaine)

  4. #4
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Pour être tout à fait propre et pouvoir s'adapter à plusieurs calendriers il faudrait plutôt travailler de cette façon:

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Calendar c = Calendar.getInstance();
    c.setTime(maDate);
    c.set(Calendar.DAY_OF_WEEK, c.getActualMinimum(Calendar.DAY_OF_WEEK));
    Date debutSemaine = c.getTime();

Discussions similaires

  1. Récupérer le premier jour de la semaine
    Par kyra2778 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 05/02/2010, 15h11
  2. Réponses: 5
    Dernier message: 16/03/2009, 09h38
  3. Récupérer premier jour de la semaine en cours?
    Par cortex024 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 06/03/2008, 11h33
  4. Mettre lundi comme premier jour de la semaine?
    Par catoucat dans le forum Access
    Réponses: 2
    Dernier message: 14/06/2006, 07h05
  5. Récupérez premier jour de la semaine
    Par Krapulax dans le forum Requêtes
    Réponses: 1
    Dernier message: 07/10/2003, 17h18

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