1 /**
2 * Retourne le jour de la semaine sous forme d'un int en fcountion de la date passé
3 * en paramètre sous forme de jour, mois et année.<br/>
4 * Notez qu'il vaut mieux se référer à la javadoc de java.util.Calendar et java.util.Date
5 * qui permettent de faire des calculs précis en choisissant
6 * le calendrier par défaut ou un autre calendrier supporté.<br/>
7 * Afficher une date formatée ou un élément de date se fait de manière aisée et encore une fois fonction
8 * de la localisation de votre plate-forme avec java.text.DateFormat et java.text.SimpleDateFormat.
9 * @param jourDuMois le jour du mois (1-31)
10 * @param mois le mois (1-12)
11 * @param annee l'année (pas sur 2 chiffres ! ex: 2007 et pas 07)
12 * @return le numéro du jour de la semaine (1= lundi, 7=dimanche)
13 */
14 public static int getJourSemaine (int jourDuMois, int mois, int annee){
15 /* Récupère une instance de calendrier comforme à la locale en cours sur votre plate-forme
16 * (Exemple: chez moi c'est fr_fr, donc le calendrier sera un calendrier Grégorien, horaire GMT+1, respect heure hiver/été).
17 */
18 Calendar c= Calendar.getInstance();
19 c.setFirstDayOfWeek(Calendar.MONDAY);
20 c.set(Calendar.YEAR, annee);
21 c.set(Calendar.MONTH, mois-1);//avec calendar les mois vont de 0 (janvier) à 11 (décembre) + le 12 (le 13ème mois, ce n'est pas une blague)
22 c.set(Calendar.DAY_OF_MONTH, jourDuMois);
23 return c.get(Calendar.DAY_OF_WEEK); // 1 pour lundi, 2 pour mardi ... 7 pour dimanche
24 }

2 comments
Le commentaire de nrdufour n'est pas bon. Son code va retrourner 0 pour dimanche, 1 pour lundi... 6 pour samedi. Mon commentaire de code précisait 0=lundi, 7=dimanche. Ce n'est pas possible, il faut don s'accorder sur 0(lundi)-6(dimacnhe) ou 1(lundi)-7(dimanche). Le code
renvoie un entier entre 0(dimanche)-6(samedi). Ce n'est pas ce qu'on veut ici. J'ai donc corrigé le commentaire et le code pour qu'ils s'accordent.
Oui un simple :
suffit !