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

JDBC Java Discussion :

Comparaison des Dates


Sujet :

JDBC 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 Comparaison des Dates
    Bonsoir a tous,
    Je veut comparer une Date dans ma table, a la date courante ...
    J'ai essayé d'utiliser Calendar, mais ca ne marche pas car le type de donnée est "Date/Heure" dans ma base de donnée ... meme pour type "Date" je ne sais pas comment faire ...
    je veut juste comparer date courante et date dans ma table pour trouver une difference d'un mois(30 jours)
    exemple : Si Date_Courante - Date_Table >=30 jours
    {//Effectuer operations ...

    Merci pour votre aide

  2. #2
    Membre régulier
    Inscrit en
    Août 2002
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 132
    Points : 102
    Points
    102
    Par défaut
    A mon avis, en jouant sur les méthodes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    getYear()
    getMonth()
    getDay()
    sur chacune des 2 dates (celle du jour et celle à comparer), il doit y avoir moyen de bidouiller un truc ... Attention aux mois à 30, 31 jours ... Mais aussi (et surtout!) aux mois à 28 ou 29 jours !

    Il y a peut-être une méthode "toute faite" qui fait ça ... Sinon, au boulot (et ... c'est sûrement très intéressant à programmer ! ;-) )

    Bon courage !

  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
    Merci mais je crois qu'il existe une fonction prédéfini pour faire ce genre de traitement, je suis pressé par ce logiciel donc j'aurais pas le temps nécessaire pour tout programmer ... Merci "poppels" pour ton aide
    Alors les programmeurs une solution ?

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 342
    Points : 419
    Points
    419
    Par défaut
    très simplement mais marche qui si tu attent 30j et pas 1mois

    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
            java.sql.Date dateSQL = ...;
            Date now = new Date();
     
            // on defini le temps d'un jour
            long seconde = 1000;
            long minute = 60 * seconde;
            long heure = 60 * minute;
            long jour = 24 * heure;
     
            // on calcule la difference
            long diff = now.getTime() - dateSQL.getTime();
     
            if(diff > (30*jour)){
                System.out.println("plus de 30 jours");
            }else{
                System.out.println("moins de 30 jours");
            }

  5. #5
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    En fonction de ta base de données, tu peux directement exprimé sous forme de requête.
    Dans le cas de MySQL, ce serait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT current_date,date(date_creation),(datediff(current_date,date(date_creation))) FROM MaTable
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 342
    Points : 419
    Points
    419
    Par défaut
    dans ce cas on peux fair avec du SQL standard

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            GregorianCalendar calendar = new GregorianCalendar();
            calendar.add(GregorianCalendar.DAY_OF_YEAR, -30);
            PreparedStatement stm = con.prepareStatement("SELECT * FROM Table t WHERE t.date < ? ");
            stm.setDate(1, new java.sql.Date(calendar.getTimeInMillis()));
    si je ne me trompe pas cela marche

  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 rolfone Voir le message
    dans ce cas on peux fair avec du SQL standard

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            GregorianCalendar calendar = new GregorianCalendar();
            calendar.add(GregorianCalendar.DAY_OF_YEAR, -30);
            PreparedStatement stm = con.prepareStatement("SELECT * FROM Table t WHERE t.date < ? ");
            stm.setDate(1, new java.sql.Date(calendar.getTimeInMillis()));
    si je ne me trompe pas cela marche
    Citation Envoyé par OButterlin Voir le message
    En fonction de ta base de données, tu peux directement exprimé sous forme de requête.
    Dans le cas de MySQL, ce serait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT current_date,date(date_creation),(datediff(current_date,date(date_creation))) FROM MaTable
    Messieurs,
    ma BD est de type ACCESS, en plus je veut pas insérer la date, je veut juste extraire de ma base et la comparer a aujourd'hui, pour effectuer un traitement ...
    Je veut juste savoir comment comparer s'il vous plait...
    Merci !!

  8. #8
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Quel est le critère exact de comparaison entre tes dates?
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  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
    Mon objectif est de détecter les sportifs qui n'ont pas encore payés leur mois (une application pour salle de sport), et ca consiste à comparer la date de leur dernier payement (existe dans ma base) a la date courante .
    C'est tout ce que je demande, merci d'avance Sinok !

  10. #10
    Expert éminent sénior
    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 : 45
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    pour comparer deux dates au mois prèt, soit tu délègue à SQL, soit tu le fait en java. Si tu le fais en java, tu prend deux Calendar. Si la date de paiement < à date du jour: tu rajoute 1 mois (Calendar.add) à la date de paiement. Si elle est toujours < à la date du jour: au moins un mois depuis paiement. Attention éventuellement à soit mettre les h/m/s/ms à 0 pour avoir la même base de travail ou ajouter un jour de plus pour être sur d'avoir dépassé

  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
    Merci mais quel est l'intérêt d'ajouter un mois ?
    en plus le type de donnée dans ma base est de type DATE/HEURE ... comment utiliser Calendar dans ce cas ?

  12. #12
    Expert éminent sénior
    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 : 45
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    ben tu veux voir si il y a un mois de décalage? Tu rajoute un mois et tu regarde si la date est passée de l'autre coté de ta date de référence, question de logique. Pour le calendar, il peut s'initialiser avec n'importe quel objet étendant java.util.Date.

  13. #13
    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 Tchize !! je vais essayer

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

Discussions similaires

  1. Pb de comparaison des dates
    Par gloglo dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 27/08/2007, 12h19
  2. comparaison des dates
    Par ghotique dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 28/06/2007, 17h16
  3. Réponses: 1
    Dernier message: 25/05/2007, 22h31
  4. comparaison des dates
    Par gloglo dans le forum Langage
    Réponses: 6
    Dernier message: 22/01/2007, 12h11
  5. [Dates] Comparaison des dates
    Par sempire dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 01/01/2006, 18h02

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