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

JSF Java Discussion :

Soucis de comparaison de date


Sujet :

JSF Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 44
    Par défaut Soucis de comparaison de date
    Bonjour ls gens. Tout d'abord je vous présente toutes mes confuses, le topic est peut être mal placé: il ne concerne pas uniquement jsf mais le soucis en découle directement, du moins je le pense.

    J'ai une page jsf qui présente 4 calendar ainsi formés:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     <rich:calendar id="dateSortMax" value="#{Rap_Cta_Flo_1.date_sortie_max}" enableManualInput="true"
                 datePattern="#{messages['commons_datePattern']}">
                <a4j:support event="onchanged" reRender="Rap_Cta_Flo_1_listesAliments" />
                <a4j:support event="oninputchange" reRender="Rap_Cta_Flo_1_listesAliments" />
              </rich:calendar>
    Les dates entrées sont ensuite traitées dans mon bean d'action jusqu'à l'endroit où je commence m'interroger:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    {
          apresDateMin = date_sortie_min.compareTo(source.getDateSortie()) <= 0;
          LOG.debug("date de sortie #0 apres date_sortie_min #1 : #2",source.getDateSortie(),date_sortie_min,apresDateMin);
        }
    (...)
        {
          avantDateMax = date_sortie_max.compareTo(source.getDateSortie()) >= 0;
          LOG.debug("date de sortie #0 avant date_sortie_max #1 : #2",source.getDateSortie(),date_sortie_max,avantDateMax);
        }
    Ce code fonctionne correctement lorsque j'utilise le calendar à la souris pour entrer mes dates:
    date de sortie 2008-11-28 00:00:00.0 avant date_sortie_max Thu Dec 03 00:00:00 CET 2009 : true
    mais lorsque je les entre à la main j'obtient:

    date de sortie 2008-11-28 00:00:00.0 avant date_sortie_max Tue Dec 03 00:00:00 CET 9 : false
    Je rève, ou ce sagouin m'explique que le 28/11/2008 n'est pas avant le 3/12/2009?

    Bon j'imagine que je me fais des idées et qu'il y a une coquille quelque part. Le fait que le toString des dates diffèrent complètement (Dec 03 00:00:00 CET 9 quand j'entre la date à la main, Dec 03 00:00:00 CET 2009 quand j'utilise la popUp calendar) me fait penser que c'est dans cette direction qu'il faut chercher,d'ou le choix du forum, mais j'avoue patauger misérablement dans la gadoue de mon désaroi spiritique et quasi-métaphysique (abus de café, toussa...).
    Pour info, et si ça a une importance, source.getDateSortie envoye un objet Date qui provient d'une requete HQL fait avec seam.
    Et la raison d'être de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    apresDateMin = date_sortie_min.compareTo(source.getDateSortie()) <= 0;
    est de tester voir si date_sortie_min est antérieure ou égale à source.getDateSortie()-en d'autres termes, je vérifie si la source.getDateSortie() est compris entre date_sortie_min et date_sortie_max inclus.
    Là je sèche, l'un d'entre vous aurait-il une suggestion?

    Merci d'avance.

  2. #2
    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 : 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
    Par défaut
    date de sortie 2008-11-28 00:00:00.0 avant date_sortie_max Tue Dec 03 00:00:00 CET 9 : false
    Tu rève. Il te dit que le 28/11/2008 ne se trouve pas avant le 3/12/9, ce qui est vrai puisque 2008 se trouve 1999 années après l'an 9. Ton problème viens du du fait qu'un saguoin a tappé 3/12/09 dans le formulaire au lieu de 3/12/2009

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 44
    Par défaut
    Pffff tout ça sous prétexte que deux petits millénaires de rien du tout sont passés... C'est de la mauvaise foi, voilà ce que c'est!

    Bon je vois d'ou vient le soucis (un javascript qui se lance au mauvais moment), merci pour la réponse rapide et concise.

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

Discussions similaires

  1. Soucis avec les comparaisons de dates
    Par Te-Deum dans le forum SQL
    Réponses: 4
    Dernier message: 29/11/2011, 12h25
  2. souci avec une comparaison de date
    Par Ludo75 dans le forum SQL Procédural
    Réponses: 6
    Dernier message: 20/02/2006, 15h59
  3. Comparaison de dates
    Par Tapioca dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 16/06/2004, 15h55
  4. Problème de comparaison de dates
    Par MiJack dans le forum Langage SQL
    Réponses: 2
    Dernier message: 12/03/2004, 21h43
  5. Réponses: 6
    Dernier message: 21/01/2004, 13h25

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