Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : comprarer 2 date [ Divers / Débutant(e) ] (simeone1)

lundi 19 mai 2008 à 16:19:44 | comprarer 2 date

simeone1

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")); 


lundi 19 mai 2008 à 18:48:55 | Re : comprarer 2 date

DARKSIDIOUS

Membre Club Administrateur CodeS-SourceS
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

lundi 19 mai 2008 à 19:03:30 | Re : comprarer 2 date

danimo

Salut,

Utilises plutot GregorianCalendar (import java.util.GregorianCalendar;) et tu pouras savoir si une date proposee est >, < ou = a la date 15/5/2017.

Une autre solution serait de convertir la date a comparer en int sous la forme
aaaamjj et la comparer a 20170515.(int dtateb)

Par exemple :

10/1/2012 donnerait 2012110 (int datea)
if (datea > dateb) // refusee

Mais crois moi ce sera mieux avec GregorianCalendar.

N'hesites pas a me faire signe si tu ne trouves pas.

Cordialement,

...\ Dan /...


lundi 19 mai 2008 à 21:15:10 | Re : comprarer 2 date

DARKSIDIOUS

Membre Club Administrateur CodeS-SourceS
Salut,

Danimo : le Calendar, la classe mère du GregorianCalendar, suffit amplement pour comparer les dates.

Par contre, pour ta comparaison entre int, c'est inexact :

13/01/2001 > 13/11/2000, et pourtant 2001113 < 20001113 !

Il faut utiliser le format : yyyyMMdd !

Mais pour comparer des dates, rien ne vaut le Calendar qui apporte une solution élégante à la comparaison, à la place d'une bidouille avec un String !

______________________________________
DarK Sidious

mardi 20 mai 2008 à 01:54:04 | Re : comprarer 2 date

danimo

Salut DarK,

La honte !....

J'ose quand meme corriger:
yyyyMMjj et comparer a 20170515.(int dtateb)

10/01/2012 donnerait 20120110 (int datea)

...\ Dan /...


mardi 20 mai 2008 à 13:20:05 | Re : comprarer 2 date

simeone1

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"));
      }


mardi 20 mai 2008 à 14:57:21 | Re : comprarer 2 date

simeone1

salut, 
j'ai rectifié mon code : mais ya des trucs qui manquent 

Calendar calendrier = Calendar.getInstance();
      Date d = new Date(yyyy/MM/dd);
      int datea = Integer.parseInt("DateEntretien");
      int dateb = ("2017,5,15");
     
      if (datea > dateb){
       erreurs.add(ActionErrors.GLOBAL_ERROR, new ActionError("aaaa.bbb.erreur.msgDateEntretien"));
      }

mardi 20 mai 2008 à 18:50:08 | Re : comprarer 2 date

DARKSIDIOUS

Membre Club Administrateur CodeS-SourceS
Salut,

Aïe aïe aïe, tu mélange un peu tout :

Calendar calendrier1 = Calendar.getInstance();
Calendar calendrier2 = Calendar.getInstance();

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

mercredi 21 mai 2008 à 00:57:51 | Re : comprarer 2 date

danimo

Salut,

? // 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;

Cordialement,

...\ Dan /...


mercredi 21 mai 2008 à 15:38:40 | Re : comprarer 2 date

simeone1

salut,

j'ai essayé ta solution DARKSIDIOUS, sauf que j'ai toujours le "setTime" souligné en rouge.

calendrier1.setTime(date.getTime());

erreur:
-  la méthde setTime(Date) du type calendar ne s'applique pas aux arguments (long)


ainsi que le "getTime".

calendrier2.setTime(dateEntretient.getTime());

erreur:
- La méthode getTime() n'est pas défini pour le type String.




1 2

Cette discussion est classé dans : date, string, probleme, df, comprarer


Répondre à ce message

Sujets en rapport avec ce message

Probleme avec drawString et drawImage [ par MacFly80 ] Bonjour tout le monde !Je suis en plein projet de fin d'année, et un newbies niveau dev en Java ...J'ai donc un ptit souçis :dans un prog je veu dessi formater une string en une date pour mysql [ par malls ] "Java ça déchire tout"Il y aurait il quelq'un qui pourrais m'aider pour convertir une date de type String (parce que je la récupère depuis un formulai String to Date Au secours ! [ par prof_weetos ] Voilà je suis étudiant en stage et prodigieusement mauvais en JAVA.Je récupère une date à ce format "10 Oct 2004 15:30:21" dans une chaine.Par la suit Petit probleme de vérifiactiond e donnée! [ par Marneus ] Voila le problèeme, j'extrait la donnée d'un fichier texte, je prends la donnée et je la store dans uenv ariable de type String. Lorsque je la manipul string to date [ par cid019 ] bonjour,voila j'ai une date au format String et je voudrais la convertir au format date. J'ai essayé avec un SimpleDateformat et la fonction parse, il probleme avec Runtime [ par debiloffprofondikum ] Bonjour a tousje voudrais a partir de mon aplication java me placer dans un répertoire et lancer une commande mais je n y arrive pas.voici mon code:Ru Date [ par cid019 ] Salut,mon probleme vient du fait que les mois ne Java vont de 0 à 11.Ma date est choisi a partir d'un JSpinner puis affiche dans une Jtable et stocke Textfield [ par touri84 ] Bonjour,j ai un probleme avec le TextField:je voudrai saisir  une date :01/02/2004 par exemple et l inserer dans un champ de base de donne de  type da Probleme de Socket [ par BretagneMateo ] Salut a tous suis etudiant en Irlande et j'ai pour projet la creation d'un jeu du monopoly en reseau. Apres avoir cree mon serveur : public Game(Stri jtable+rafraichir [ par KERKENNAH ] bonjour à tous je suis un etudiant et j'ai besoin d'aide àproposde jtableon faite j'ai une application qui joue le role d'un serveur qui recoit des tr


Nos sponsors

Sondage...

CalendriCode

Novembre 2008
LMMJVSD
     12
3456789
10111213141516
17181920212223
24252627282930

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,296 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.