[Java] - Comment tester simplement la validité d'une date ?

- Comment tester simplement la validité d'une date ? [Java] - Java - Programmation

Marsh Posté le 22-03-2004 à 18:28:03    

Dans un formulaire, l'utilisateur doit saisir une date. J'aimerais pouvoir tester la validité de cette date dans la page JSP qui se charge de contrôler les valeurs saisies avant d'enregistrer tout ça en base de données. Comment faire pour tester la validité de la date ? Ce serait quand même mieux que l'utilisateur ne puisse pas saisir 30/02/2004 par exemple.
Merci pour vos réponses.

Reply

Marsh Posté le 22-03-2004 à 18:28:03   

Reply

Marsh Posté le 22-03-2004 à 18:30:53    

c peut etre une idée à la con, mais y'a une classe calendar dans java...tu testes la date avec, si ca renvoit une erreur c que la date n'existe pas...


---------------
Jubi Photos : Flickr - 500px
Reply

Marsh Posté le 22-03-2004 à 19:03:39    

SimpleDateFormat


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 22-03-2004 à 19:14:35    

En réponse à Jubijub, il est tjs possible d'instancier un objet GregorianCalendar de la manière suivante sans avoir la moindre erreur : GregorianCalendar c = new GregorianCalendar(2004,2,30);

Reply

Marsh Posté le 22-03-2004 à 19:28:32    

je présume que si tu le rappelle il te renvoit le premier mars ?? c typique de java ca, c pareil pour les types de nombres : si t au max et que tu fais +1, tu reviens au minimum...
 
au pire t bon pour te coder ta classe calendar...ce que tu veux éviter je présume aussi :D


---------------
Jubi Photos : Flickr - 500px
Reply

Marsh Posté le 22-03-2004 à 19:34:12    

SimpleDateFormat putain [:mlc]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 22-03-2004 à 19:43:11    

le code suivant ne pose aucun prb ;-|
 
SimpleDateFormat f = new SimpleDateFormat("dd/MM/yyyy",Locale.FRANCE);
Date d = f.parse("32/02/2004" );

Reply

Marsh Posté le 22-03-2004 à 19:47:10    

Citation :


public abstract Date parse(String source,
                           ParsePosition pos)
 
    Parse a date/time string according to the given parse position. For example, a time text "07/10/96 4:5 PM, PDT" will be parsed into a Date that is equivalent to Date(837039928046).
 
    By default, parsing is lenient: If the input is not in the form used by this object's format method but can still be parsed as a date, then the parse succeeds. Clients may insist on strict adherence to the format by calling setLenient(false).


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 22-03-2004 à 19:47:59    

t'as essayé un setLenient(false) sur le SimpleDateFormat ?
 
extrait de la javadoc de Calendar :

Citation :

When a Calendar is lenient, it accepts a wider range of field values than it produces. For example, a lenient GregorianCalendar interprets MONTH == JANUARY, DAY_OF_MONTH == 32 as February 1. A non-lenient GregorianCalendar throws an exception when given out-of-range field settings. When calendars recompute field values for return by get(), they normalize them. For example, a GregorianCalendar always produces DAY_OF_MONTH values between 1 and the length of the month.


 
[:benou_grilled]  :fou:


Message édité par benou le 22-03-2004 à 19:48:34

---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 22-03-2004 à 20:21:06    

Merci pour tout !
Le code suivant retourne effectivement une exception :
 
SimpleDateFormat f = new SimpleDateFormat("dd/MM/yyyy" );
f.setLenient(false);
Date d = f.parse("30/02/2004" );

Reply

Marsh Posté le 22-03-2004 à 20:21:06   

Reply

Marsh Posté le 23-03-2004 à 20:41:04    

c chiant ces parseurs en java...y'en faut pour tout...g déciouvert ca y'a pas longtemps, c assez relou...


---------------
Jubi Photos : Flickr - 500px
Reply

Marsh Posté le 23-03-2004 à 20:53:55    

:??: Tu veux faire comment sinon, pour transformer une chaîne de caractères entrée par un utilisateur en Date ?


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 23-03-2004 à 21:23:46    

:??: +1

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed