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 :

comparaison de date


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 29
    Par défaut comparaison de date
    Salut tout le monde...
    Voila mon code me sert à determiner les dates ou aucune voiture n'est libre (pour ceux qui m'ont aider, merci, j'ai utiliser vos solutions SQL en JAVA (dsl mais je prefere) ).
    J'ai verifier et il compare bien date_verif a date_debut et date_fin pour chaque reservation.
    Bref le probleme c'est que je vois pas ce qui bug dans mon code mais les resultat sont faux et pire , ils sont aléatoires...
    Si quelqun voit une erreur qu il me le dise a moins que sa vienne de la gestion des dates en JAVA...


    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
     
    int nbvoiture =2;
     
    for (int i = 0 ;i<vecteur_date_reservations.size();i++)
    {
         Date date_a_verifier = new Date();
         date_a_verifier = (Date)vecteur_date_reservations.elementAt(i);
         int resultat = 0;
         resultat = Verif_date (date_a_verifier); // appel de la fonction 
     
         if (resultat==nbvoiture)
         { 
               vecteur_dates.addElement(date_a_verifier);
         }
    }
     
     
     
    private int Verif_date (Date date_verif)
    {
     
         int nbvoiturereserver = 0;
     
         // Verification du nombre de reservation correspondant à la date
     
         Properties properties = this.getJDOProperties();
         PersistenceManagerFactory pmf=
         JDOHelper.getPersistenceManagerFactory(properties);
         PersistenceManager pm = pmf.getPersistenceManager();
         Transaction tx = pm.currentTransaction();
         tx.begin();
         Extent extent = pm.getExtent(Reservation.class, true);
         Iterator it = extent.iterator();
         while (it.hasNext()) 
        {
     
         Reservation reservation = null;
         reservation = (Reservation) it.next();
     
         Date date_debut_ancienne = new Date();
     
         date_debut_ancienne.setDate(reservation.GetJourDebut());
         date_debut_ancienne.setYear(reservation.GetAnneeDebut());
         date_debut_ancienne.setMonth(reservation.GetMoisDebut()-1);
         date_debut_ancienne.setHours(reservation.GetHeureDebut());
         date_debut_ancienne.setMinutes(reservation.GetMinuteDebut());
         date_debut_ancienne.setSeconds(00);
     
         Date date_fin_ancienne = new Date();
     
         date_fin_ancienne.setDate(reservation.GetJourFin());
         date_fin_ancienne.setYear(reservation.GetAnneeFin());
         date_fin_ancienne.setMonth(reservation.GetMoisFin()-1);
         date_fin_ancienne.setHours(reservation.GetHeureFin());
         date_fin_ancienne.setMinutes(reservation.GetMinuteFin());
         date_fin_ancienne.setSeconds(00);
     
         if ((date_debut_ancienne.compareTo(date_verif) <= 0)
         && (date_fin_ancienne.compareTo(date_verif) >=0))
    	nbvoiturereserver++;
     
         }
         tx.commit();
         pm.close();
         pmf.close();
         return nbvoiturereserver;
    }
    merci d avance

    [ Modéré par SEMPERE Benjamin ]
    Ajout des balises code
    Les Règles du Forum

  2. #2
    Membre éprouvé
    Inscrit en
    Mai 2003
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 103
    Par défaut
    Euh , les methodes Date.setYear( ...) sont deprecated non ?

    c'est mieux d'utiliser un Calender pour construire tes dates.

    Autre question , ton objet Reservation , il est persistant et la date est stockée de faon éclatée ? jour, mois, annee, minutes ... ) tu arrives pas l'enrichir pour qu'il retourne un objet date ? en sql peut etre ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 29
    Par défaut
    Mon objet reservation est persisatant est les dates sont stockées de facon éclatées.

    Je vais tenter en utilisant calendar pour construire mes dates...

    Si ca fonctionne pas je verrais pour l'objet Date mais je vois pas trop ce que ca change que je le créé dans mon code, dans mon objet reservation ou en SQL....

  4. #4
    Membre éprouvé
    Inscrit en
    Mai 2003
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 103
    Par défaut
    ben justement , pour manipuler des dates il est fortement conseillé d'utiliser calendar, sinon pas trop de garantie .

    encore un détail, mais il me semble que le premier mois c'est 0 et non 1.

  5. #5
    Membre Expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Par défaut
    Comme dit ci-dessus, il faut utiliser un Calendar car là tu as les millisecondes qui sont pas gérées.

    Mieux : utilise le DateUtils de la librairie common lang.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 29
    Par défaut
    MERCIIIIIIIIIIIIIIIIIIIII

    Ca fait 3 jour (meme 4 mais la honte) que je galère la dessus et j y arrive enfin !!!

    DOnc j'ai remplacer toute mes dates par des Calendar et ainsi je peux instancier le nombre de millisecondes de mes dates...



    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
    	private int Verif_date (Calendar date_verif)
    	{
    		int nbvoiturereserver = 0;
     
    		// Verification du nombre de reservation correspondant à la date
     
    		Properties properties = this.getJDOProperties();
    		PersistenceManagerFactory pmf = JDOHelper.getPersistenceManagerFactory(properties);
    		PersistenceManager pm = pmf.getPersistenceManager();
    		Transaction tx = pm.currentTransaction();
    		tx.begin();
    		Extent extent = pm.getExtent(Reservation.class, true);
    		Iterator it = extent.iterator();
    		while (it.hasNext()) 
    		{
    			Reservation reservation = null;
    			reservation = (Reservation) it.next();
     
    			Calendar date_debut_ancienne = Calendar.getInstance();
     
    			date_debut_ancienne.set(reservation.GetAnneeDebut(),reservation.GetMoisDebut()-1,
    					reservation.GetJourDebut(),reservation.GetHeureDebut(),
    					reservation.GetMinuteDebut(),00);
     
    			Calendar date_fin_ancienne = Calendar.getInstance();
     
    			date_fin_ancienne.set(reservation.GetAnneeFin(),reservation.GetMoisFin()-1,
    					reservation.GetJourFin(),reservation.GetHeureFin(),
    					reservation.GetMinuteFin(),00);
     
    			date_verif.set(Calendar.MILLISECOND , 00);
    			date_debut_ancienne.set(Calendar.MILLISECOND , 00);
    			date_fin_ancienne.set(Calendar.MILLISECOND , 00);
     
    			if ((date_debut_ancienne.compareTo(date_verif) <=0)
    					&& (date_fin_ancienne.compareTo(date_verif) >= 0))
    				nbvoiturereserver++;	
    		}
    		tx.commit();
    		pm.close();
    		pmf.close();
    		return nbvoiturereserver;
    	}
    Encore un grand merci à tous....

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

Discussions similaires

  1. comparaison de dates javascript
    Par SpaceFrog dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 12/07/2005, 08h45
  2. comparaison de dates
    Par pmithrandir dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 02/06/2005, 16h12
  3. comparaison de date
    Par nickoshiba dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 15/03/2005, 15h48
  4. Comparaison de dates
    Par Tapioca dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 16/06/2004, 15h55
  5. Problème de comparaison de dates
    Par MiJack dans le forum Langage SQL
    Réponses: 2
    Dernier message: 12/03/2004, 21h43

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