Bonjour à tous j'aimerai avoir une réponse à ma question...
j'utilise une formule mathématique dite de Zeller (du nom de son inventeur) qui permet de calculer le jour de la semaine en fonction de la date.
Cette fonction tournai sans probleme jusqu'au jour fatidique du 01/05/2008
en effet avant cette date la formule détermine bien le jour de la semaine sans se tromper
mais passé le 30/04/2008 la formule semble éronnée... il y à un jour de décallage
il semblerai que la formule tiens compte du fait qu'il existe un 31/04/2008
je vous passe le code (en JAVA) :
Code java : 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
49
50
51
52
53
54
55
56
57
58
59
60
61 public class zeller { public static void main(String args[]) { zeller z = new zeller(); int jour = z.zellerFormula(Integer.parseInt(args[0]),Integer.parseInt(args[1]),Integer.parseInt(args[2])); switch(jour) { case 0: System.out.println("Samedi\n"); break; case 1: System.out.println("Dimanche\n"); break; case 2: System.out.println("Lundi\n"); break; case 3: System.out.println("Mardi\n"); break; case 4: System.out.println("Mercredi\n"); break; case 5: System.out.println("Jeudi\n"); break; case 6: System.out.println(" Vendredi\n"); break; } } public zeller() { } public static int zellerFormula (int dd, int mm, int yyyy) { if (mm == 1 || mm == 2) { mm += 12; yyyy--; } int cc = yyyy/100; int yy = yyyy%100; int k = (int)(dd + Math.round(2.6d*(mm + 1)) + Math.round(cc/4) - 2*cc + yy + Math.round(yy/4)); if (k<0) { k = (-k)%7; k = 7 - k; } //return days [k%7]; return (k%7); } }
faites des tests svp et dites moi si vous obtenez comme moi ?
existe-t-il d'autres algorithmes permettant de faire ce prodige ? lol
Partager