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
    Points : 1
    Points
    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 à l'essai
    Inscrit en
    mars 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : mars 2007
    Messages : 12
    Points : 13
    Points
    13
    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 éclairé Avatar de remika
    Profil pro
    Inscrit en
    septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : septembre 2004
    Messages : 806
    Points : 861
    Points
    861
    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)
    Ignorer c'est aussi croire que l'on sait.
    Merci d'essayer d'écrire correctement.
    Pas de questions techniques par MP SVP.

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

    Informations forums :
    Inscription : août 2004
    Messages : 8 765
    Points : 12 925
    Points
    12 925
    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();
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

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, 16h11
  2. Réponses: 5
    Dernier message: 16/03/2009, 10h38
  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, 12h33
  4. Mettre lundi comme premier jour de la semaine?
    Par catoucat dans le forum Access
    Réponses: 2
    Dernier message: 14/06/2006, 08h05
  5. Récupérez premier jour de la semaine
    Par Krapulax dans le forum Requêtes
    Réponses: 1
    Dernier message: 07/10/2003, 18h18

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