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 pour ajouter un nombre de mois à la date en cours


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Mai 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2011
    Messages : 19
    Par défaut Problème pour ajouter un nombre de mois à la date en cours
    Bonjour Je m'appelle Serge je suis débutant; je souhaite modifier le contenu du JTextflied2(txtdatefin) à partir du JTextfield1(txtdatedeb) .
    c'est à dire ajouter 2 mois à txtdatefin à partir de la date saisie dans txtdatedeb.
    J'ai écrit le code ci-dessous mais ça marche pas
    J'ai besoin d'aide svp!

    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
    19
    20
     
    public void insertUpdate(DocumentEvent e) {
     
                 Calendar cal=Calendar.getInstance();
                 SimpleDateFormat sdf=new SimpleDateFormat("dd/MM/yyyy");
     
                try{  
                         java.util.Date today = new java.util.Date();
                         txtdatedeb.setText(sdf.format(today));
     
                        cal.add(Calendar.MONTH,2);
     
                         java.util.Date date = cal.getTime();
     
                       txtdatefin.setText(sdf.format(date));
                             }
                catch(Exception ex){
            ex.printStackTrace();
     
                }

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    974
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 974
    Par défaut
    Si tu utilises jdk 1.8, tu as la méthode "plusMonths" de la classe "LocalDate".

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    +1, les nouvelles APIs de java 8 sont plus pratiques à manipuler
    DateTimeFormatter formatter = DateTimeFormatter.ofPattern(String pattern)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      String text = date.toString(formatter);
      LocalDate date = LocalDate.parse(texte, formatter);
      date.plusMonths(2);
      String texte2 = date.format(formatter);
    Pour revenir à ton code, tout ce qu'il fait pour le moment, c'est ajouter dans txtdatedeb la date d'aujourd'hui et dans txtdatefin la date dans 2 mois. Mais en aucun cas, tu n'a lié les deux paramètres entre eux. Si tu veux que l'un change avec l'autre, tu dois ajouter cette logique quelque part. Pour savoir où ajouter cette logique, il faut commencer par te pose la question de savoir quand tu veux ce changement? Dès qu'un caractère change dans un des listener? Dès que le textfield perd le focus? Quand on appuie sur un bouton sauver?

  4. #4
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Mai 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2011
    Messages : 19
    Par défaut
    Je souhaite avoir la date dans 2 mois dès que le textfield(txtdatedeb) perd le focus.
    Quelle modification dois-je faire dans mon code?
    Merci pour vos conseils.

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Dans tous les composants swing, et donc dans le textField, tu peux enregistrer un FocusListener via addFocusListener qui sera notifié quand le composant reçois ou perd le focus: http://docs.oracle.com/javase/tutori...slistener.html

    Tu n'a plus qu'à récupérer la date du textfield, dans ce listener, y ajouter 2 mois et mettre à jour l'autre textfield.

  6. #6
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Mai 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2011
    Messages : 19
    Par défaut
    j'ai installé jdk 1.8 . Sur la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String text = date.toString(formatter);
    l'expression "date" (cannot find symbol symbol:variable date)
    Aidez à corriger l'erreur svp!

    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
    textdatedeb.addFocusListener(new FocusListener() {
    public void focusGained(FocusEvent e) {
    
    }
    public void focusLost(FocusEvent e) {
    
    String text = date.toString(formatter);
    LocalDate date = LocalDate.parse(texte, formatter);
    date.plusMonths(2);
    txtdatefin.setText(date.format(formatter));
    
          }
          }
        });

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. ajouter un nombre de mois à une date
    Par PAYASS59 dans le forum Webi
    Réponses: 11
    Dernier message: 18/03/2010, 15h33
  2. ajouter un nombre de mois à une date
    Par mèmaton dans le forum WinDev
    Réponses: 7
    Dernier message: 22/04/2009, 11h30
  3. Réponses: 4
    Dernier message: 11/06/2006, 19h04
  4. Réponses: 1
    Dernier message: 21/02/2006, 15h46

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