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 :

La méthode Date.getYear() est barrée ! [Débutant(e)]


Sujet :

Collection et Stream Java

  1. #1
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    220
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 220
    Par défaut La méthode Date.getYear() est barrée !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    //----  
     
    private Date date;
    if( date.getYear() == c.getDDebut().getYear()  )
     
     
    //------
    Pourquoi la methode : getYear() se voit barrée dans mon code java?

    est ce que ça veut dire qu'elle n'est plus utilisée ??

    son remplaçant ?

    getYear


  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par kamaldev Voir le message
    Pourquoi la methode : getYear() se voit barrée dans mon code java?

    est ce que ça veut dire qu'elle n'est plus utilisée ??
    Elle est dépréciée (deprecated), c'est à dire qu'elle ne devrait plus être utilisé...

    Citation Envoyé par kamaldev Voir le message
    son remplaçant ?
    Il suffit de jeter un coup d'oeil à la JavaDoc : getYear()
    En l'occurrence il faut utiliser un Calendar...

    a++

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    220
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 220
    Par défaut
    .... avec Calendar ?

    Quel est l'équivalent de getYear() ?

    j'ai pas pu le trouver avec Calender !

    j'ai fait ceci :

    remplacer ça :

    par ça :

    Calendar myCalendar = GregorianCalendar.getInstance();
    myCalendar.setTime(myDate);

    MAIS à l'affichage ! il donne pas la meme Chose :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     System.out.println( "myDate.getYear() = " + myDate.getYear() ); 
    System.out.println( "myCalendar.YEAR  = " + myCalendar.YEAR );

    ça affiche :


    myDate.getYear() = 108
    myCalendar.YEAR = 1


    Comment donc ce faire c Complké

  4. #4
    Membre éprouvé
    Avatar de Deadpool
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 312
    Par défaut
    Citation Envoyé par kamaldev Voir le message
    .... avec Calendar ?

    Quel est l'équivalent de getYear() ?

    j'ai pas pu le trouver avec Calender !

    j'ai fait ceci :

    remplacer ça :

    par ça :

    Calendar myCalendar = GregorianCalendar.getInstance();
    myCalendar.setTime(myDate);

    MAIS à l'affichage ! il donne pas la meme Chose :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     System.out.println( "myDate.getYear() = " + myDate.getYear() ); 
    System.out.println( "myCalendar.YEAR  = " + myCalendar.YEAR );

    ça affiche :


    myDate.getYear() = 108
    myCalendar.YEAR = 1


    Comment donc ce faire c Complké
    Calendar.YEAR n'est qu'une constante utilisée pour désigner le champ année de l'objet calendar.

    Il faut l'utiliser dans la méthode get de Calendar.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    int year = myCalendar.get(Calendar.YEAR);

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    220
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 220
    Par défaut
    Re salut

    ...j'ai fait ce que tu ma dicté;

    mais ça donne pas la meme chose?!

    console:
    date.getYear() = 108
    myCalendar.YEA = 2008

    c'est quoi deja l histoire de getYear() ?

    il donne des info erronées? elle n est plus reconnue ?


    a+

  6. #6
    Membre éprouvé
    Avatar de Deadpool
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 312
    Par défaut
    Citation Envoyé par kamaldev Voir le message
    Re salut

    ...j'ai fait ce que tu ma dicté;

    mais ça donne pas la meme chose?!

    console:
    date.getYear() = 108
    myCalendar.YEA = 2008

    c'est quoi deja l histoire de getYear() ?

    il donne des info erronées? elle n est plus reconnue ?


    a+
    date.getYear donne l'année en format court ce qui fait qu'il fallait ajouter 1900 pour avoir l'année sur 4 chiffres.

    C'est une méthode dépréciée qu'il est conseillé de ne plus utiliser car à terme elle pourrait disparaître, c'est tout.

  7. #7
    Membre expérimenté Avatar de aperrin
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    221
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 221
    Par défaut Une méthode complète réalisant Date.getYears()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    /**
             * Return la valeur fournit par la méthode (deprecated) Date.getYears()
             * @param date une date
             * @return année_date - 1900
             */
    	public static final int getYear(Date date){
    		Calendar myCalendar = GregorianCalendar.getInstance();
    		myCalendar.setTime(date);
    		return myCalendar.get(Calendar.YEAR) - 1900;
     
    	}

  8. #8
    Membre Expert
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Par défaut
    Citation Envoyé par aperrin Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    /**
             * Return la valeur fournit par la méthode (deprecated) Date.getYears()
             * @param date une date
             * @return année_date - 1900
             */
    	public static final int getYear(Date date){
    		Calendar myCalendar = GregorianCalendar.getInstance();
    		myCalendar.setTime(date);
    		return myCalendar.get(Calendar.YEAR) - 1900;
     
    	}
    Pourquoi vouloir récupérer 108 au lieu de 2008? ça me parait étrange, non? Visiblement le getYear de la classe Date n'avait pas été pensé pour passer l'an 2000, avant ça retournait bien l'année mais sur 2 digits.(95 ou 99 par exemple). Reproduire ce "bug" en passant par le calendar qui est censé le corrigé, c'est un peu paradoxale

  9. #9
    Membre expérimenté Avatar de aperrin
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    221
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 221
    Par défaut
    Sauf que lorsque tu a des méthodes dont tu ne connait pas la logique qui utilise cette méthode et que tu souhaite supprimer les warning sans modifier la logique métier (donc ne pas rajouter (ou enlever ???) un bug) tu reproduis exactement la fonction.

Discussions similaires

  1. Comment changer "Date" qui est deprecated
    Par DrE44 dans le forum Collection et Stream
    Réponses: 8
    Dernier message: 18/12/2006, 12h00
  2. Bouton dont le texte est barré
    Par xenos dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 27/11/2006, 20h15
  3. Réponses: 5
    Dernier message: 17/08/2006, 17h32
  4. [Dates] Problème avec les dates, c'est la misère !
    Par shingo dans le forum Langage
    Réponses: 2
    Dernier message: 04/07/2006, 10h24
  5. Reprendre une date dans la barre d'adresse.
    Par kmayoyota dans le forum ASP
    Réponses: 32
    Dernier message: 03/09/2004, 08h46

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