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 :

Comparer deux dates


Sujet :

JDBC Java

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2011
    Messages : 74
    Points : 44
    Points
    44
    Par défaut Comparer deux dates
    Bonjour à tous
    je suis un débutant , et je désire comparer deux dates (dateemprunt,dateretour) existant dans la base de données afin de vérifier si l'étudiant a rendu le livre avant la date maximale(1 mois).
    j'ai essayé d'écrire un code mais je sais plus est ce qu'il est juste ou non??
    pourriez vous corriger mon code?
    merci d’avance
    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
    21
    22
    23
     
    private boolean isRetard( String  cne ) throws InstantiationException, IllegalAccessException, ClassNotFoundException, SQLException {
    		Connection connexion = null;
    		int compare = 0;
    		boolean isr=false;
    		Class.forName("com.mysql.jdbc.Driver").newInstance();
            connexion = DriverManager.getConnection("jdbc:mysql://localhost:3306/myfirstprogram","root","");
            Statement stmt=connexion.createStatement();
            String req = "SELECT dateemprunt,dateretour FROM emprunte WHERE cne='"+cne+"';";
            ResultSet rs = stmt.executeQuery(req);
    			while(rs.next()){	
     
    				int t[]=Parser.parserDate(rs.getString(1));
    				int t1[]=Parser.parserDate(rs.getString(2));
    				compare=(t1[2]-t[2])*12*30+(t1[1]-t[1])*30+(t1[0]-t[0]);
    				if (compare>30)
    					isr=true;
    				else 
    					isr= false;
    			}
     
    			return isr;	
    	}
    avec PARSER:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public static int[] parserDate(String date){
    		String tab[]=date.split("-");
    		int t[]=new int[3];
    		t[0]=Integer.parseInt(tab[0]);
    		t[1]=Integer.parseInt(tab[1]);
    		t[2]=Integer.parseInt(tab[2]);
     
    		return t;
     
    	}

  2. #2
    Membre éprouvé Avatar de Gardyen
    Homme Profil pro
    Bio informaticien
    Inscrit en
    Août 2005
    Messages
    637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bio informaticien

    Informations forums :
    Inscription : Août 2005
    Messages : 637
    Points : 1 050
    Points
    1 050
    Par défaut
    pourquoi ne pas laisser mysql gérer la différence ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from emprunte where datediff(dateretour,dateemprunt) >= 30 and cne=...
    si tu veux tout de même comparer en java, regarde dans la

    au passage, change le nom de ta fonction, parce qu'en anglais ça signifie autre chose
    Nous les geeks, c'est pas qu'on a une case en moins, c'est juste qu'on compte à partir de zéro.
    Plus les choses changent, plus elles restent les mêmes

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2011
    Messages : 74
    Points : 44
    Points
    44
    Par défaut
    merci pour votre réponse
    Citation Envoyé par Gardyen Voir le message
    pourquoi ne pas laisser mysql gérer la différence ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from emprunte where datediff(dateretour,dateemprunt) >= 30 and cne=...
    si tu veux tout de même comparer en java, regarde dans la
    sans faire d'autres tests, est ce qu'il suffit juste de rajouter datediff(dateretour,dateemprunt)???est ce qu'elle est prédéfinie sous sql ?


    Citation Envoyé par Gardyen Voir le message
    au passage, change le nom de ta fonction, parce qu'en anglais ça signifie autre chose
    Ok , merci

  4. #4
    Membre éprouvé Avatar de Gardyen
    Homme Profil pro
    Bio informaticien
    Inscrit en
    Août 2005
    Messages
    637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bio informaticien

    Informations forums :
    Inscription : Août 2005
    Messages : 637
    Points : 1 050
    Points
    1 050
    Par défaut
    cette fonction est définie sous mysql, cf
    Nous les geeks, c'est pas qu'on a une case en moins, c'est juste qu'on compte à partir de zéro.
    Plus les choses changent, plus elles restent les mêmes

  5. #5
    Membre régulier
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2012
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Avril 2012
    Messages : 57
    Points : 76
    Points
    76
    Par défaut
    Salut,


    Sinon si t'as deux Objets 'Date' dans ton code Java (que tu peux obtenir à partir de tes deux dates dans la base de données), tu peux faire un simple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (date1.getTime()-date2.getTime())
    Tu obtiendras la différence entre les deux dates en millisecondes. après si tu veux la différence en jours tu peux faire par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (date1.getTime()-date2.getTime())/1000/60/60/24
    (Conversion Millisecondes>Jours)


    En espérant t'avoir aidé,

Discussions similaires

  1. Comment comparer deux dates
    Par vodevil dans le forum Modules
    Réponses: 6
    Dernier message: 01/09/2005, 18h24
  2. comparer deux dates
    Par adel25 dans le forum C++
    Réponses: 3
    Dernier message: 23/08/2005, 20h29
  3. Comparer deux dates
    Par LoicH dans le forum C++Builder
    Réponses: 4
    Dernier message: 04/03/2005, 22h53
  4. comment comparer deux dates?
    Par billoum dans le forum C++Builder
    Réponses: 2
    Dernier message: 21/08/2004, 21h08

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