simeone1
Messages postés28Date d'inscriptiondimanche 29 avril 2007StatutMembreDernière intervention28 mai 2008
-
19 mai 2008 à 16:19
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013
-
21 mai 2008 à 18:51
salut tt le monde
je suis vraiement un débutant en java et je viens vers vous afin de bien vouloir m'aider pour resoudre mon probleme, vous en remerciant.
pour comparer 2 dates ( converti en string ) j'ai fé le code ci dessous.
mon probleme est : comment comaparé a l'aide de l'operateur "<" ou ">", au lieu de equals,
car moi je ve interdire tte date apres le 15/5/2017.
je ne c pas si j'été clair.
Voila mon code :
DateFormat df = new SimpleDateFormat("d/M/yyyy") ;
//représentation jour/mois/annee
Date date = df.parse("15/5/2017") ; // pour la date 5 mai 2017
//Pour récupérer une date en chaîne de caractères sous le format jour/mois/annee
String sDate = df.format(date) ;
if (!DateEntretien.equals(sDate)){
erreurs.add(ActionErrors.GLOBAL_ERROR, new ActionError("aaaa.bbb.erreur.msgDateEntretien"));
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 19 mai 2008 à 18:48
Salut,
T'as pourtant fait le plus dur : récupèrer un objet date à partir du String !
Utilise le Calendar pour comparer tes objets Date au lieu de comparer des String (qui est loin d'être fiable !).
______________________________________
DarK Sidious
simeone1
Messages postés28Date d'inscriptiondimanche 29 avril 2007StatutMembreDernière intervention28 mai 2008 20 mai 2008 à 13:20
salut,
J'ai essayé de faire ce que vous m'avez proposer, mais qd meme je suis un pe perdu.
voila mon nouveau code.
Calendar calendrier = Calendar.getInstance();
d = New Date(yyyy,m,d);
int datea = Integer.parseInt("DateEntretien");
int dateb = ("2017,5,15");
if (datea > dateb){
erreurs.add(ActionErrors.GLOBAL_ERROR, new ActionError("aaaa.bbb.erreur.msgDateEntretien"));
}
DateFormat df = new SimpleDateFormat("dd/MM/yyyy") ;
Date date = df.parse("15/05/2017") ;
calendrier1.setTime(date.getTime());
calendrier2.setTime(dateEntretient.getTime());
et ensuite, tu n'as plus qu'à utiliser :
calendrier1.after(calendrier2)
calendrier1.before(calendrier2)
calendrier1.equals(calendrier2)
______________________________________
DarK Sidious
? // date A
?? int aaA = 2009;
?? int mmA = 1;
?? int jjA = 1;
?? // date B
?? int aaB = 2008;
?? int mmB = 12;
?? int jjB = 25;
?? // Zéro à gauche de la valeur possible < 10 du jour et du mois
?? String Snum_moisA = (mmA<10?"0":"") + mmA;
?? String Snum_moisB = (mmB<10?"0":"") + mmB;
?? String SjourA = (jjA<10?"0":"") + jjA;
?? String SjourB = (jjB<10?"0":"") + jjB;
?? // parametrage de GregorianCalendar pour la date A
?? int anneeA = aaA;
?? int num_moisA = mmA;
?? int jourA = jjA;
?? Calendar dA = new GregorianCalendar(anneeA, num_moisA - 1, jourA);
POURQUOI num_moisA - 1 ?
PARCE QUE GregorianCalendar RETOURNE UNE VALEUR 0 À 11
ET NON 1 À 12 POUR LE NUMÉRO DE MOIS. (cf Préambule -Thème 0-)
?? // parametrage de GregorianCalendar pour la date B
?? int anneeB = aaB;
?? int num_moisB = mmB;
?? int jourB = jjB;
?? Calendar dB = new GregorianCalendar(anneeB, num_moisB - 1, jourB);
POURQUOI num_moisB - 1 ?
PARCE QUE GregorianCalendar RETOURNE UNE VALEUR 0 À 11
ET NON 1 À 12 POUR LE NUMÉRO DE MOIS. (cf Préambule -Thème 0-)
?? boolean b = dA.equals(dB); // true si les dates A et B sont égales
?? boolean b1 = dA.after(dB); // true si la date A > à la date B
?? boolean b2 = dA.before(dB); // true si la date A < à la date B
?? if (b) aff1 = "la date A " + anneeA + "/" + Snum_moisA + "/" + SjourA
+ " est égale à la date B " + anneeB + "/" + Snum_moisB + "/" + SjourB;
?? if (b1) aff1 = "la date A " + anneeA + "/" + Snum_moisA + "/" + SjourA
+ " est postérieure à la date B " + anneeB + "/" + Snum_moisB + "/" + SjourB;
?? if (b2) aff1 = "la date A " + anneeA + "/" + Snum_moisA + "/" + SjourA
+ " est antérieure à la date B " + anneeB + "/" + Snum_moisB + "/" + SjourB;