Manipulation des dates avec la classe Calendar
Je n'arrive pas à comprendre le fonctionnement exact de certaines classes de Calendar. J'arrive pas à me retrouver dans la Javadoc
1) Je veux afficher le jour auquel tombe une date choisie. Par exemple
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| Calendar cal = Calendar.getInstance();
cal.set(2011, 3, 1);
// AVEC UNE DATE SPECIFIQUE
if (cal.get(Calendar.DAY_OF_WEEK) == Calendar.MONDAY)
System.out.println("Cette date correspond à Lundi ");
if (cal.get(Calendar.DAY_OF_WEEK) == Calendar.TUESDAY)
System.out.println("Cette date correspond à Mardi ");
if (cal.get(Calendar.DAY_OF_WEEK) == Calendar.WEDNESDAY)
System.out.println("Cette date correspond à Mercredi ");
if (cal.get(Calendar.DAY_OF_WEEK) == Calendar.THURSDAY)
System.out.println("Cette date correspond à Jeudi ");
if (cal.get(Calendar.DAY_OF_WEEK) == Calendar.FRIDAY)
System.out.println("Cette date correspond à Vendredi ");
if (cal.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY)
System.out.println("Cette date correspond à Samedi ");
if (cal.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY)
System.out.println(" Cette date correspond à Dimanche "); |
Mais le problème est que ce code ne marche que pour le mois en cours, toute autre date affiche un résultat erronné.
2) Quel est le rôle de la méthode (Calendar.DAY_OF_WEEK). La valeur qu'il renvoie représente quoi exactement ? Par exemple
Code:
1 2 3
| Calendar c = Calendar.getInstance();
c.set(2011, 02,16);
System.out.println("Le jour de la semaine est : " + c.get(Calendar.DAY_OF_WEEK)); |
Ce qui me renvoi 4 et je ne comprend pas pourquoi.
Ou encore
Code:
1 2 3 4 5
| Date d1 = new Date(1000000000000L); //un milliard de millisecondes après le 1er,Jan 1970
System.out.println("Cette date tombe le : " + d1.toString());
Calendar c = Calendar.getInstance();
c.setTime(d1);
System.out.println("Le jour de la semaine tombe le: " + c.get(Calendar.DAY_OF_WEEK)); |
Ici jai 1 comme deuxième résultat que je n'arrive pas à interpréter.
Merci