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 :

Problème avec date


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    679
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 679
    Par défaut Problème avec date
    bonsoir

    j'ai problème avec les dates je ne sais pas pourquoi ça marche pas
    je cherche à faire la différence entre calendar6 et calendar4
    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
     
     
    String str2="05/2011";
    SimpleDateFormat  simpleFormat36 = new SimpleDateFormat("MM/yy");
    Date date3 = simpleFormat36.parse(str2);
    GregorianCalendar calendar4 = new java.util.GregorianCalendar(); 
    calendar4.setTime(date3);
     
     
    GregorianCalendar calendar6 = new java.util.GregorianCalendar();
    calendar6=calendar4;
    calendar6.add (calendar4.MONTH, 12);
     
     
    long mils1 = calendar4.getTimeInMillis();
    long mils2 = calendar6.getTimeInMillis();
     
    System.out.println("  "+mils1+"            "+mils2);

    ça donne meme résultat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     1335823200000            1335823200000
    normalement mils2 est supérieur a mils1 car j'ai ajouté 12 mois à calendar6

    merci d'avance

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 476
    Par défaut
    Bonsoir !

    C'est normal, calendar6 et calendar4 pointent sur le même objet.

    A un moment tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GregorianCalendar calendar6 = new java.util.GregorianCalendar();
    Tu as 2 objets distincts GregorianCalendar en mémoire (un référencé par calendar4 et un autre référencé par calendar6).

    Mais juste après, tu fais :
    tu fais ainsi pointer calendar6 sur le même objet que pointe calendar4.

    Donc quand tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    calendar6.add (calendar4.MONTH, 12);
    tu ajoutes aux même objet 12 mois (objet référencé à la fois par calendar6 et calendar4).
    D'où l'égalité.

    Au lieu d'affecter calendar4 à calendar6, tu dois initialiser calendar6 en valorisant la propriété time que tu récupéreras de calendar4. Ainsi les deux objets seront indépendants.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    GregorianCalendar calendar6 = GregorianCalendar();
    calendar6.setTime(calendar4.getTime());
    calendar6.add (Calendar.MONTH, 12);
    J'ai remplacé calendar4.MONTH par Calendar.MONTH car tu n'as pas besoin d'instance pour utiliser un champ static.

Discussions similaires

  1. [Dates] problème avec date et mktime
    Par gloubi dans le forum Langage
    Réponses: 2
    Dernier message: 07/02/2007, 17h59
  2. [Dates] Problème avec date (heure qui varie)
    Par Death83 dans le forum Langage
    Réponses: 10
    Dernier message: 05/08/2006, 02h19
  3. Problème avec date dans requête
    Par alain94 dans le forum Access
    Réponses: 2
    Dernier message: 22/05/2006, 07h49
  4. Problème avec "Date()" en mode runtime
    Par bwalbourg dans le forum Runtime
    Réponses: 1
    Dernier message: 25/01/2006, 10h51
  5. [MySQL] Problème avec DATE SUB et INTERVAL
    Par psychoBob dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 25/01/2006, 00h36

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