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 :

Limitation de 3 mois entre 2 Date


Sujet :

Collection et Stream Java

  1. #1
    Membre à l'essai
    Inscrit en
    Septembre 2011
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Septembre 2011
    Messages : 7
    Points : 10
    Points
    10
    Par défaut Limitation de 3 mois entre 2 Date
    Bonjour,

    Je possède une interface web codée avec Wicket où l'utilisateur peut sélectionner un intervalle avec 2 champs Date.
    Je désire rajouter un contrôle pour vérifier que l'intervalle entre les 2 dates ne soit pas supérieur à 3 mois.

    Actuellement j'utilise DateValidator pour limiter à 3 mois mais cela se base sur la date actuelle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    PropertyModel<Date> dateDebutModel = new PropertyModel<Date>this,"dateDebut");
    dateTextDebut = newDateTextField("dateTextDebut", dateDebutModel);
    add(dateTextDebut);
    
    Date dateMax = new Date(); //Problème à ce niveau la date de référence est la date actuelle
    Date dateMin = DateUtils.addMonths(dateMax, -3);
    dateTextDebut.add(DateValidator.range(dateMin, dateMax)); //Limitation de 3 mois à partir de la date actuelle
    
    PropertyModel<Date> dateFinModel = new PropertyModel<Date>(this,"dateFin");
    dateTextFin = newDateTextField("dateTextFin", dateFinModel);
    add(dateTextFin);
    dateTextFin.add(DateValidator.range(dateMin, dateMax));
    Auriez-vous une idée pour contrôler juste l'intervalle et permettre la sélection d'une fenêtre glissante de 3 mois ?

    Merci

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Il suffirait de tester si la date de début + 3 mois est supérieure à ta date de fin...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre à l'essai
    Inscrit en
    Septembre 2011
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Septembre 2011
    Messages : 7
    Points : 10
    Points
    10
    Par défaut
    Le problème est que c'est un code exécuté dans un constructeur de classe.
    C'est pour cela que j'ai besoin d'ajouter une contrainte sur les champs comme avec DateValidator.range.

    J'ai tenté quelque chose de ce genre mais sans succès :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Date dateMax = dateTextDebut.getConvertedInput();
    Date dateMin = DateUtils.addMonths(dateMax, -3);
    dateTextDebut.add(DateValidator.range(dateMin, dateMax));

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    J'y connais rien à Wicket, mais a priori, si tu cherches à valider un intervalle, tu ne peux pas valider les deux dates.
    Tu ne peux qu'en valider une, la condition étant qu'elle soit espacée de moins de 3 mois de l'autre.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre à l'essai
    Inscrit en
    Septembre 2011
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Septembre 2011
    Messages : 7
    Points : 10
    Points
    10
    Par défaut
    Je n'ai pas trouvé de système pour ajouter un contrôle automatique sur les champs date (comme le fait la ligne DateTextDebut.add(DateValidator.range(dateMin, dateMax)); )

    J'ai rajouté un contrôle dans une couche inférieur de l'application (où j'ai accès aux dates sélectionnées par l'utilisateur) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Calendar calendarDebut = new GregorianCalendar();
    calendarDebut.setTime(dateDebut);
     
    Calendar calendarFin = new GregorianCalendar();
    calendarFin.setTime(dateFin);
     
    if( Math.abs(calendarFin.get(Calendar.MONTH)-calendarDebut.get(Calendar.MONTH)) > 3){
    	error(getString("DateValidator.abonnement"));
    }
    Je vais me contenter de cela pour l'instant.

    Merci pour votre aide

  6. #6
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 074
    Points : 7 978
    Points
    7 978
    Par défaut
    Pour mettre le sujet en résolu tu as un petit bouton en bas "resolu" prévu a cet effet, ne l'oublies pas. (Je vais cliquer pour toi dessus).
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. Nombre de mois entre deux dates
    Par boulaxx dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 14/09/2006, 15h22
  2. Calcul du nombre de mois entre 2 dates
    Par Bes74 dans le forum Access
    Réponses: 1
    Dernier message: 22/08/2006, 22h15
  3. [Dates] Les mois entre deux dates
    Par kagura dans le forum Langage
    Réponses: 2
    Dernier message: 28/06/2006, 11h38
  4. Nombre de mois entre 2 dates
    Par gripoil dans le forum Langage SQL
    Réponses: 7
    Dernier message: 16/01/2006, 13h05
  5. comment obtenir l’intervalle de mois entre deux date
    Par looc 6699 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 23/02/2005, 11h08

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