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

 Java Discussion :

Calcul d'âge en utilisant des JTextField


Sujet :

Java

  1. #1
    Candidat au Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Août 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Maroc

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Août 2014
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Calcul d'âge en utilisant des JTextField
    Bonjour,

    J'aimerais faire une méthode qui calcule l'âge.

    J'ai positionné les champs jTextField1 et jTextField2 et jTextField3 et j'aimerais faire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    jTextField3 = jTextField2 - jTextField1
    Quelqu'un saurait-il m'indiquer comment faire ?

    J'utilise NetBeans.

    Merci d'avance pour votre aide.

  2. #2
    Membre chevronné

    Homme Profil pro
    développeur
    Inscrit en
    Octobre 2013
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : développeur

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 576
    Points : 1 989
    Points
    1 989
    Par défaut
    Bonjour,

    Je ne comprend pas, c'est la fonction que tu n'arrives pas à trouver ? Le calcul d'âge ce fait par différence age = annéeencours - année de naissance ?

    Pour récupérer l'année courante, regarde du côté de la classe Calendar avec get(Calendar.YEAR) - l'âge que tu récupères de l'utilisateur.

  3. #3
    Candidat au Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Août 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Maroc

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Août 2014
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Saurais-tu m'indiquer comment faire pour réaliser le calcul de différence de dates et en utilisant les JTextField ?

    Merci d'avance.

  4. #4
    Membre chevronné

    Homme Profil pro
    développeur
    Inscrit en
    Octobre 2013
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : développeur

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 576
    Points : 1 989
    Points
    1 989
    Par défaut
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public static int calculeAge() {
     
        // on déclare une instance calendar
        Calendar curr = Calendar.getInstance();
        // tu récupères l'année de naissance dans ton jtextfield à toi de faire les contrôle pour que ça soit bien une année
        String aString = JTextField.getText();
        // Tu convertis car les jtextfield ne renvoient que des String
        int dateNaissance = Integer.parseInt(aString); 
        // tu fais la soustraction de l'année en cours, moins la date de naissance
        int yeardiff = curr.get(Calendar.YEAR) - dateNaissance;
     
        return yeardiff;
    }
    Je n'ai pas testé. A toi de faire les modifications pour que ça colle...

  5. #5
    Modérateur
    Avatar de MasterMbg
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 719
    Points : 1 493
    Points
    1 493
    Par défaut
    Citation Envoyé par richi2casa Voir le message
    Bonjour,

    J'aimerais faire une méthode qui calcule l'âge.

    J'ai positionné les champs jTextField1 et jTextField2 et jTextField3 et j'aimerais faire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    jTextField3 = jTextField2 - jTextField1
    Quelqu'un saurait-il m'indiquer comment faire ?

    J'utilise NetBeans.

    Merci d'avance pour votre aide.
    Bonjour,
    Tu peux utiliser cette fonction qui te retournera l'âge à partir de la date de naissance et de la date du actuelle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public static long renvoyerAge(Date dateDuJour, Date dateNaissance) {
            long t = dateDuJour.getTime() - dateNaissance.getTime();
            return Math.round((double) (t / (1000 * 60 * 60)) / (24 * 365));
     }
    Tu peux l'utiliser comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    //Je récupère la date du jour
    Calendar date_actuelle = Calendar.getInstance();
    //Je simule une date de naissance 
    Calendar date_naissance = Calendar.getInstance();
    date_naissance.set(1988, 11, 3);
    //J'affiche l'âge calculé
    System.out.println(renvoyerAge(date_actuelle.getTime(), date_naissance.getTime()));
    Plus tu apprends sérieusement, plus tu te rapproches d'un savoir noble. Une chose est certaine, les difficultés ne s'écarteront de ton chemin...

    Tu es nouveau dans le développement Android, la page des COURS est là pour te faciliter la vie
    Tu peux trouver la réponse à ta question dans la FAQ
    Retrouvez mon tutoriel sur la consommation des services web SOAP
    Pense à voter positivement en appuyant sur en bas à droite de la réponse qui t'a donné une piste de solution.

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par MasterMbg Voir le message
    Bonjour,
    Tu peux utiliser cette fonction qui te retournera l'âge à partir de la date de naissance et de la date du actuelle :
    Cette fonction est erronée car elle ne tiens pas compte des années bissextile. Tous les 4 ans, approximativement, la personne va vieillir d'un jour plus vite.

    Dans une moindre mesure, elle peut aussi poser problème je pense aux gens nés un jour de changement d'heure.


    Avec Java 8 c'est très facile à calculer accessoirement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    LocalDate naissance =...;
    LocalDate aujourdhui = ...;
    long age = ChronoUnit.YEARS.between(naissance,aujourdhui);

  7. #7
    Modérateur
    Avatar de MasterMbg
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 719
    Points : 1 493
    Points
    1 493
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    Avec Java 8 c'est très facile à calculer accessoirement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    LocalDate naissance =...;
    LocalDate aujourdhui = ...;
    long age = ChronoUnit.YEARS.between(naissance,aujourdhui);
    Merci tchize_ pour cette information
    Sinon, pour cela permet-il de calculer accessoirement?
    Plus tu apprends sérieusement, plus tu te rapproches d'un savoir noble. Une chose est certaine, les difficultés ne s'écarteront de ton chemin...

    Tu es nouveau dans le développement Android, la page des COURS est là pour te faciliter la vie
    Tu peux trouver la réponse à ta question dans la FAQ
    Retrouvez mon tutoriel sur la consommation des services web SOAP
    Pense à voter positivement en appuyant sur en bas à droite de la réponse qui t'a donné une piste de solution.

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par MasterMbg Voir le message
    Sinon, pour cela permet-il de calculer accessoirement?
    Heeuuu



  9. #9
    Modérateur
    Avatar de MasterMbg
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 719
    Points : 1 493
    Points
    1 493
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    Heeuuu


    désolé, ça va.
    Plus tu apprends sérieusement, plus tu te rapproches d'un savoir noble. Une chose est certaine, les difficultés ne s'écarteront de ton chemin...

    Tu es nouveau dans le développement Android, la page des COURS est là pour te faciliter la vie
    Tu peux trouver la réponse à ta question dans la FAQ
    Retrouvez mon tutoriel sur la consommation des services web SOAP
    Pense à voter positivement en appuyant sur en bas à droite de la réponse qui t'a donné une piste de solution.

  10. #10
    Modérateur
    Avatar de MasterMbg
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 719
    Points : 1 493
    Points
    1 493
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    Cette fonction est erronée car elle ne tiens pas compte des années bissextile. Tous les 4 ans, approximativement, la personne va vieillir d'un jour plus vite.

    Dans une moindre mesure, elle peut aussi poser problème je pense aux gens nés un jour de changement d'heure.


    Avec Java 8 c'est très facile à calculer accessoirement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    LocalDate naissance =...;
    LocalDate aujourdhui = ...;
    long age = ChronoUnit.YEARS.between(naissance,aujourdhui);
    je pense que celle-ci ne sera pas erronée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public static long renvoyerAge(int annee, int mois, int jour) {
            LocalDate dateDuJour = LocalDate.now();
            try {
                LocalDate dateNaissance = LocalDate.of(annee, mois, jour);
                return ChronoUnit.YEARS.between(dateNaissance, dateDuJour);
            } catch (DateTimeException e) {
                e.printStackTrace();
                return -1;
            }
        }
    Plus tu apprends sérieusement, plus tu te rapproches d'un savoir noble. Une chose est certaine, les difficultés ne s'écarteront de ton chemin...

    Tu es nouveau dans le développement Android, la page des COURS est là pour te faciliter la vie
    Tu peux trouver la réponse à ta question dans la FAQ
    Retrouvez mon tutoriel sur la consommation des services web SOAP
    Pense à voter positivement en appuyant sur en bas à droite de la réponse qui t'a donné une piste de solution.

Discussions similaires

  1. [XL-2007] Utilisations des donnes d'autre feuilles de calcul
    Par mystradivarius dans le forum Excel
    Réponses: 2
    Dernier message: 26/05/2009, 10h30
  2. Réponses: 1
    Dernier message: 06/05/2009, 15h12
  3. Utiliser des champs de recherche pour une valeur calculée.
    Par MasterJul dans le forum SharePoint
    Réponses: 0
    Dernier message: 08/02/2008, 12h47
  4. Réponses: 8
    Dernier message: 18/09/2007, 11h25
  5. Réponses: 5
    Dernier message: 23/02/2007, 09h04

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