Dans le cadre d'une application web, je collecte, entre-autre, deux dates avec heure. Afin que ces dates puissent être insérée dans une base de données, un jeu de JavaScript impose à l'utilisateur de renseigner une date et une heure sous la forme aaaa-mm-jj hh:mm:ss.
Or, avant d'insérer ces données dans la base, j'ai besoin de m'assurer qu'elles vérifient une règle d'antériorité. La date A doit être antérieure à la date B.
Voici comment je procède actuellement:
CODE
(...)
// on vérifie le bon ordonancement chronologique des dates
Date A_date = new Date();
Date B_date = new Date();
Date A_time = new Date();
Date B_time = new Date();
StringTokenizer strTkn = new StringTokenizer(date_A);
String A_date_str = strTkn.nextToken();
String A_time_str = strTkn.nextToken();
strTkn = new java.util.StringTokenizer(date_B);
String B_date_str = strTkn.nextToken();
String B_time_str = strTkn.nextToken();
A_date = java.sql.Date.valueOf(A_date_str);
B_date = java.sql.Date.valueOf(B_date_str);
A_time = java.sql.Time.valueOf(A_time_str);
B_time = java.sql.Time.valueOf(B_time_str);
// si la date A n'est pas inférieure à la seconde prêt à la date B, on a une erreur
if (
( B_date.equals(A_date) && B_time.before(A_time ) ) ||
( B_date.before(A_date) )
){
erreurs.add("saisie",new ActionError("saisie.erreur.chronologie"));
}
(...)
Je trouve particulièrement crados ce que j'ai fait, mais je ne vois pas trop comment procéder autrement. Des idées?