begin process at 2012 02 11 12:07:13
  Trouver un code source :
 
dans
 
Accueil > Forum > 

JAVA / J2EE / J2ME

 > 

Divers

 > 

Débutant(e)

 > 

comprarer 2 date


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

comprarer 2 date

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ée dans : date, string, probleme, df, comprarer


Répondre à ce message

Sujets en rapport avec ce message

Probleme de date SimpleDateFormat [ par gretata ] [b]bonjour a tous !![/b] j'ai un petit soucis lors du traitement d'une date en String avec la valeur 301231 (aammjj) qui avec un SimpleDateFormat don application java netbeans [ par morticiancorax ] salut tout le monde !j'espere que quelq'un peut répendre a mes questions.. ba j'ai realiser une application de gestion de stock avec netbeans et wamps creation des class java [ par mdh12 ] Bonjour, j'ai une application java qui sert a gérer les fonctionnalités suivantes : -Gestion des enseignants - Évolution des enseignants - charge convertire string en date en gardant la même format [ par tunisiano22 ] Bonjour, SVp est ce qu'il ya qq qui peut me dire comment je peux convertire un String en une date tout en gardant la même format: "jour.mois.année" Convertir un String en date pour Java [ par Manyanya ] Salut, J'utilise Netbeans pour créer mes interfaces en java. Un JFormattedjtextfield récupère la donnée saisie au clavier. Elle est du type "String" convertire une string en Date [ par aminagu ] bonjours j 'ai une date de la forme DD-MM-YYYY elle est de type String , et je veux la mettre dans ma table dans le champs date qui est de type date Convertir un objet de type date en String [ par tanalook ] Bonsoir, je voudrais convertir getdatesoldeCarte de type date en String mais à chaque fois que je mes saisieDateSoldeCarte.setText(date.toString(uneCa conversion Date->String [ par casporov ] salut,j'ai une question de conversion...si quelqu'un peut m'aiderj'ai une variable de type dateje veut la transformer en une autre variable de type st Conversion d'une variable Long en Date [ par cedric774 ] Bonjour à tous je suis actuellement coincé sur un petit problème qui doit être facilement résolu mais je tourne un peu en rond. Le but du prog est d Date.sql convertir string to date [ par pgcdppcm ] Bonsoir J'utilise Netbeans pour créer mes interfaces en java. Un jtextfield récupère la donnée saisie au clavier. Elle est "String". Je voudrais conv


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,952 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales