Obtennir le jour par la date

Obtennir le jour par la date - Java - Programmation

Marsh Posté le 23-02-2010 à 11:43:05    

Salut tout le monde, j'ai un petit problème depuis plusieurs heures, j'imagine que la solution doit être assez facile, j'ai un peu honte de galérer là dessus mais bon, malgré plusieurs recherches et de nombreux topics sur ce sujet, je ne parviens pas à trouver de solution, je vous expose mon problème:
 
Je voudrais qu'en entrant une date, le programme me ressorte le jour, par exemple: "23/02/2010", le programme sort "mardi".
 
J'ai tenté pour ce faire d'utiliser la classe Date, mais aussi Calendar sans succès...
 
Pour "passer" la date, peut importe la manière, je peux obtenir le jour, le mois et l'année dans un string au format ci dessus, dans un objet Date ou dans 3 int séparés sans problèmes (bah ouais c'est pas compliqué...).  
 
Merci d'avance à ceux qui m'aideront  :)

Reply

Marsh Posté le 23-02-2010 à 11:43:05   

Reply

Marsh Posté le 23-02-2010 à 15:56:13    

Reply

Marsh Posté le 23-02-2010 à 22:34:10    

new SimpleDateFormat("EE", Locale.French).format(taDate)


Message édité par phnatomass le 23-02-2010 à 22:35:11
Reply

Marsh Posté le 24-02-2010 à 08:36:03    

Tout d'abord, merci de passer du temps pour m'aider, à la base, j'ai en effet utilisé DAY_OF_WEEK, j'avais obtenu une solution avec un problème.
J'ai testé avec la solution de phnatomass, ça marche mais je me retrouve une fois de plus avec le même problème: les jours ne correspondent pas  
 
J'obtiens par exemple, jeu. 24/2/2010 au lieu de mercredi
et ça empire quand on passe en mars, est ce que quelqu'un aurait une idée du problème ? (en dehors du fait que je sois mauvais bien sur).
 
Merci d'avance.

Reply

Marsh Posté le 24-02-2010 à 13:08:17    

Code :
  1. new SimpleDateFormat("EEEE", Locale.French).format(taDate)


 
Le format "EE" donne le jour en abrégé, "EEEE" donne le jour complet

Reply

Marsh Posté le 24-02-2010 à 14:13:09    

Merci pour le tuyau, mais ça ne change rien à mon problème de correspondance des jours :s

Reply

Marsh Posté le 24-02-2010 à 14:21:51    


Montre nous le code que tu utilises pour initialiser ton objet Date (ou Calendar).
 
As tu le problème avec le code suivant ?

Code :
  1. System.out.println(new SimpleDateFormat("EEEE", Locale.FRANCE).format(new Date()));

Reply

Marsh Posté le 01-03-2010 à 08:57:40    

Bidem a écrit :


Montre nous le code que tu utilises pour initialiser ton objet Date (ou Calendar).
 
As tu le problème avec le code suivant ?

Code :
  1. System.out.println(new SimpleDateFormat("EEEE", Locale.FRANCE).format(new Date()));



 
 
J'ai tenté le coup comme ça mais ça ne marche pas non plus, je met mon code:
 
 

Code :
  1. Date d= listeDatesformat.get(i-1);
  2.      //Calendar cal = new GregorianCalendar();
  3.      //cal.set(d.getYear(), d.getMonth(), d.getDate());
  4.      String jour="";
  5.      String s=d.getDate()+"/"+d.getMonth()+"/"+d.getYear();
  6.      jour = new SimpleDateFormat("EEEE", Locale.FRANCE).format(d);
  7.      s=""+jour+" "+s;
  8.      Label label = new Label(0, i, s);
  9.      sheet.addCell(label);
  10.      //crée les dates


 
Comme vous voyez, j'ai tenté plusieurs pistes sans doute par dépit  :o  
 
ma liste de dates:
 

Code :
  1. private static List<Date> listeDatesformat = new ArrayList<Date>();


 
Merci d'avance, j'espère que c'est pas une erreur de "gros boulet".

Reply

Marsh Posté le 01-03-2010 à 10:07:25    

il ne t'est jamais venu à l'esprit que c'est un objet Date que tu passes en paramètre de format() ? et non une string ?
http://java.sun.com/j2se/1.4.2/doc [...] od_summary

 

La doc c'est pas fait pour les chiens [:mlc]


Message édité par gatsu35 le 01-03-2010 à 10:08:29

---------------
Blablaté par Harko
Reply

Marsh Posté le 01-03-2010 à 14:50:15    

Il passe bien une date en paramètre 'd'.

 

Mais ça n'empêche pas que c'est un boulet qui n'a pas lu la javadoc.

 

Date.getMonth() retourne un chiffre entre 0 et 11

 

De toutes façon, ta façon de t'y prendre n'est pas bonne :

 
Code :
  1. // création du format en dehors de la boucle
  2. SimpleDateFormat format = new SimpleDateFormat("EEEE dd/MM/yyyy", Locale.FRANCE);
  3. ...
  4.   Date d= listeDatesformat.get(i-1);
  5.   String label = format.format(d);
  6.   Label label = new Label(0, i, label);
  7.   sheet.addCell(label);


Message édité par Bidem le 01-03-2010 à 14:50:34
Reply

Marsh Posté le 01-03-2010 à 14:50:15   

Reply

Marsh Posté le 02-03-2010 à 08:43:31    

Salut, tout d'abord, merci beaucoup cette solution fonctionne en effet très bien, en plus d'être claire et simple, par contre, même si j'admets avoir fait le gros boulet sur ce coup, pensez bien que je ne serais pas venu demander de l'aide si je n'avais pas lu la javadoc, merci beaucoup encore.  :)

Reply

Sujets relatifs:

Leave a Replay

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