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 :

[debutant] Comparaison des Dates


Sujet :

Collection et Stream Java

  1. #1
    Membre régulier
    Inscrit en
    Avril 2009
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 133
    Points : 75
    Points
    75
    Par défaut [debutant] Comparaison des Dates
    J'ai un programme a faire, je doit comparer si un sportif a déjà payé sa mensualité ou pas encore, mais si je compare les deux mois ce n'est pas toujours évident ! par exemple si il a payé le 29/11/2010, et je compare le 1/12/2010 le programme me dit que ce dernier n'a pas payé sa mensualité malgré qu'il n'a pas encore passé 30 jours !
    Comment faire s'il vous plait !

  2. #2
    Membre régulier Avatar de yaya_la_rafale
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 92
    Points : 70
    Points
    70
    Par défaut
    je ne sais pas si c'est le mieux mais j'utilise la bibliotheque Calendar
    qui a une fonction before & after

    Cette bibliotheque est dans jcalendar-1.3.3.jar, telechargeable sur le net.

  3. #3
    Membre régulier
    Inscrit en
    Avril 2009
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 133
    Points : 75
    Points
    75
    Par défaut
    J'ai trouvé la fonction before et after, je travaille avec Calendar et Jcalendar les deux ! mais je veut comparer 2 mois, pas de savoir qui vient avant qui.
    Merci pour ton aide ^^

  4. #4
    Membre régulier Avatar de yaya_la_rafale
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 92
    Points : 70
    Points
    70
    Par défaut
    ok. Dans ce cas[
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    myCal.get(Calendar.MONTH)
    peut etre t'aider ? ou mieux encore, numero de jour dans l'annee.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    myCal.get(Calendar.DAY_OY_YEAR)
    bonne chance

  5. #5
    Membre régulier
    Inscrit en
    Avril 2009
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 133
    Points : 75
    Points
    75
    Par défaut
    Oui je comprend mais vous m'avez mal compris a ce que je vois ..
    Quand je compare deux dates de la sorte ca risque de ne pas être juste toujours !
    par exemple si il a payé le 29/11/2010, et je compare le 1/12/2010 le programme me dit que ce dernier n'a pas payé sa mensualité malgré qu'il n'a pas encore passé 30 jours !
    Vous me comprenez mieu ?

  6. #6
    Membre régulier Avatar de yaya_la_rafale
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 92
    Points : 70
    Points
    70
    Par défaut
    et bien oui justement je pense que je ferai qquechose du style

    myCal1 est par exemple 29/11/2010 et myCal2 le 1/12/2010

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if (myCal2.get(Calendar.DAY_OY_YEAR) - myCal1.get(Calendar.DAY_OY_YEAR) >30) {
     // n'a pas payé
    }

  7. #7
    Membre régulier
    Inscrit en
    Avril 2009
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 133
    Points : 75
    Points
    75
    Par défaut
    Citation Envoyé par hbar31 Voir le message
    et bien oui justement je pense que je ferai qquechose du style

    myCal1 est par exemple 29/11/2010 et myCal2 le 1/12/2010

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if (myCal2.get(Calendar.DAY_OY_YEAR) - myCal1.get(Calendar.DAY_OY_YEAR) >30) {
     // n'a pas payé
    }
    Merci bien, ca marche a perfection, mais j'ai un autre probleme un peu plus genant !
    je veut autoriser a payer la mensualité si il a depassé 30 jours ... mais il me sot NullPointer Exception je ne sais pas comment la gerer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
                        java.util.Date now = new java.util.Date();
     
                        java.sql.Date NOW = new java.sql.Date(now.getTime());
     
                        datep = resultats.getDate(9);
                                    int retour = JOptionPane.showConfirmDialog(null,"Voulez vous payer la mensualité\n de "+nom+" "+prenom+" meintenant ?", "titre",JOptionPane.YES_NO_OPTION);
                                    if (retour == JOptionPane.OK_OPTION)
                                    {
                                        resultats.updateDate(9, NOW);
                                    }

  8. #8
    Membre averti Avatar de clubist
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2008
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Février 2008
    Messages : 217
    Points : 301
    Points
    301
    Par défaut
    A quelle instruction exactement vous avez eu NullPointerException ??

    peut être vous veuillez donner plus de code ou plus de détails !!!

  9. #9
    Membre régulier
    Inscrit en
    Avril 2009
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 133
    Points : 75
    Points
    75
    Par défaut
    ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                                        resultats.updateDate(9, NOW);

  10. #10
    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
    y a jodatime qui permet de faire des calculs de dates. Sinon, avec JCalendar, ce qu'il faut faire c'est ajouter un mois a la première date. Si elle est toujours < à la date du jour, on a au moins 1 mois entre les deux, pas bien compliqué quoi.

  11. #11
    Membre régulier
    Inscrit en
    Avril 2009
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 133
    Points : 75
    Points
    75
    Par défaut
    non j'ai travaillé avec "Day_Of_Year" j'espère que ca ira bien non ?
    sinon j'ai un deuxieme problème il est le suivant :
    *je veut autoriser a payer la mensualité si il a depassé 30 jours(en modifiant la derniere mensualité ) ... mais il me sot NullPointer Exception je ne sais pas comment la gerer!
    et mon code est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
                        java.util.Date now = new java.util.Date();
     
                        java.sql.Date NOW = new java.sql.Date(now.getTime());
     
                        datep = resultats.getDate(9);
                                    int retour = JOptionPane.showConfirmDialog(null,"Voulez vous payer la mensualité\n de "+nom+" "+prenom+" meintenant ?", "titre",JOptionPane.YES_NO_OPTION);
                                    if (retour == JOptionPane.OK_OPTION)
                                    {
                                        resultats.updateDate(9, NOW);
                                    }
    il me sort l'exception nullpointerexception a la derniere ligne !

  12. #12
    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 wajdy Voir le message
    non j'ai travaillé avec "Day_Of_Year" j'espère que ca ira bien non ?
    Ouais? Essaye avec le code montré lorsque la cotisation est payée en décembre et qu'on est en mars de l'année suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if (payday.before(now)){
       // on a payé par le passé
       payday.add(Calendar.MONTH,1)
       if (payday.before(now)){
          //passé +1mois toujours avant aujourd'hui, en retard
       }
    }
    mais il me sot NullPointer Exception je ne sais pas comment la gerer!
    En identifiant l'objet qui est Null, en analysant ton code pour savoir pourquoi il est null alors qu'il devrait pas, et ensuite corriger cette erreur.

  13. #13
    Membre régulier Avatar de yaya_la_rafale
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 92
    Points : 70
    Points
    70
    Par défaut
    Ouais? Essaye avec le code montré lorsque la cotisation est payée en décembre et qu'on est en mars de l'année suivante
    bien vu....

    exact, le code que je t'ai passé va alors planter ! (

  14. #14
    Membre régulier
    Inscrit en
    Avril 2009
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 133
    Points : 75
    Points
    75
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    Ouais? Essaye avec le code montré lorsque la cotisation est payée en décembre et qu'on est en mars de l'année suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if (payday.before(now)){
       // on a payé par le passé
       payday.add(Calendar.MONTH,1)
       if (payday.before(now)){
          //passé +1mois toujours avant aujourd'hui, en retard
       }
    }
    En identifiant l'objet qui est Null, en analysant ton code pour savoir pourquoi il est null alors qu'il devrait pas, et ensuite corriger cette erreur.
    Donc Tchize tu me propose d'ajouter ton code a mon code ou de le remplacer complètement ? je suis débutant alors excuse moi pour cette ignorance, c'est mon premier projet pro

  15. #15
    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
    ben code ou pas code, suffit de lire ce que fait le code pour voir le résultat que ça donne Si tu comprend pas le code, ne le met pas, il faut au minimum savoir ce que l'on fait

  16. #16
    Membre régulier
    Inscrit en
    Avril 2009
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 133
    Points : 75
    Points
    75
    Par défaut
    Merci je vais m'y mettre

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 25/05/2007, 22h31
  2. comparaison des dates
    Par gloglo dans le forum Langage
    Réponses: 6
    Dernier message: 22/01/2007, 12h11
  3. [Dates] Comparaison des dates
    Par sempire dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 01/01/2006, 18h02
  4. [DEBUTANT]Comparaison sur date et heure
    Par tripper.dim dans le forum Oracle
    Réponses: 15
    Dernier message: 15/11/2005, 18h25
  5. [Debutant] Format des dates ?
    Par Invité dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 02/09/2005, 14h55

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