Bonjour tous le monde,
J’ai un sérieux problème que j'espère que vous m'aider.

Je veux vérifier pour une date donnée s'il est ouvré ou pas, donc j'ai utiliser la formule de zeller:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
public int zellerFormula(int dd, int mm, int yyyy) {
		if (mm < 2) {
			mm += 12;
			yyyy--;
		}
 
		int cc = yyyy / 100;
		int yy = yyyy % 100;
 
		int k = (dd + (26 * (mm + 1)) / 10 + yy + yy / 4 + cc / 4 + 5 * cc) % 7;
		return k % 7;
	}
et une autre méthode avec l'objet calendar que j'ai trouvé sur le net :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
    public String JourFériéLib(GregorianCalendar G) {
 
        GregorianCalendar Test = new GregorianCalendar(G.get(Calendar.YEAR),G.get(Calendar.MONTH),G.get(Calendar.DAY_OF_MONTH));
        int A = G.get(Calendar.YEAR);   // année de la date examinée
        int T = 0; int T_48 = 0;        // pour calculs intermédiaires
        GregorianCalendar LP;           // contiendra la date du lundi de Pâques
        String TYPEJOUR = "Ordinaire";  // valeur par défaut de la date
 
        // recherche du lundi de Pâques de la date Test
        T = Modulo(((255 - 11 * Modulo(A, 19)) - 21) , 30 ) + 21;
        if (T > 48) {
            T_48 = -1;
        } else {
            T_48 = 0;
        }
 
        LP = new GregorianCalendar(A, 3-1, 2);
        LP.add(Calendar.DAY_OF_YEAR , (T + T_48 + 6 - Modulo((A + A / 4 + T + T_48 + 1) , 7)));
 
        //  valeurs par défaut
        if (Test.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY)    {TYPEJOUR = "Samedi";}
        if (Test.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY)      {TYPEJOUR = "Dimanche";}
 
        // Jours fériés mobiles
        LP.add(Calendar.DAY_OF_YEAR,-1);
        if (Test.equals(LP))    {TYPEJOUR = "Dimanche de Pâques";}
        LP.add(Calendar.DAY_OF_YEAR,1);
        if (Test.equals(LP))    {TYPEJOUR = "Lundi de Pâques";}
        LP.add(Calendar.DAY_OF_YEAR,38);
        if (Test.equals(LP))    {TYPEJOUR = "Assension";}
        LP.add(Calendar.DAY_OF_YEAR,10);
        if (Test.equals(LP))    {TYPEJOUR = "Dimanche de Pentecôte";}
        LP.add(Calendar.DAY_OF_YEAR,1);
        if (Test.equals(LP))    {TYPEJOUR = "Lundi de Pentecôte";}
 
        // Jours fériés fixes
        if (Test.equals(new GregorianCalendar(A, 0, 1)))    {TYPEJOUR = "Jour de l'an";}
        if (Test.equals(new GregorianCalendar(A, 4, 1)))    {TYPEJOUR = "Fête du travail";}
        if (Test.equals(new GregorianCalendar(A, 4, 8)))    {TYPEJOUR = "8 Mai 45";}
        if (Test.equals(new GregorianCalendar(A, 6, 14)))   {TYPEJOUR = "Fête nationale";}
        if (Test.equals(new GregorianCalendar(A, 7, 15)))   {TYPEJOUR = "15 Août";}
        if (Test.equals(new GregorianCalendar(A, 10, 1)))   {TYPEJOUR = "Toussaint";}
        if (Test.equals(new GregorianCalendar(A, 10, 11)))  {TYPEJOUR = "11 novembre 18";}
        if (Test.equals(new GregorianCalendar(A, 11, 25)))  {TYPEJOUR = "Noël";}
 
 
        return TYPEJOUR;
    }
Mais c'est méthode ne fonctionne pas correctement sur certains date comme : 20/05/2012, il ne me retourne pas le vrais jour.
Merci pour votre aide.