cs_MUSUL
Messages postés7Date d'inscriptionvendredi 27 décembre 2002StatutMembreDernière intervention 9 mars 2007
-
16 mai 2005 à 13:49
cs_MUSUL
Messages postés7Date d'inscriptionvendredi 27 décembre 2002StatutMembreDernière intervention 9 mars 2007
-
16 mai 2005 à 14:57
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
cs_MUSUL
Messages postés7Date d'inscriptionvendredi 27 décembre 2002StatutMembreDernière intervention 9 mars 2007 16 mai 2005 à 14:57
Excusez j'avai pas vu qu'il y avait en plus une erreur au niveau du calcul du lundi de pentecote ainsi qu'un oublie de ma part au niveau des DateOf, voici le code corrigé :
//Fonction qui teste si le jour est férié
function JourFeriee(Date : TDateTime):boolean;
var
Year,Month,Day: Word;
A,b,c,d,e,f,g,h,i,J,k,l,M,n,o: integer;
begin
DecodeDate(Date,Year,Month,Day);
A := Year;
// Module de calcul
l := A mod 19;
b := A div 100;
c := A mod 100;
d := b div 4;
e := b mod 4;
f := (b+8) div 25;
g := (b-f+1) div 3;
h := (19*l+b-d-g+15) mod 30;
i := c div 4;
k := c mod 4;
o := (32+2*e+2*i-h-k) mod 7;
n := (l+11*h+22*o) div 451;
M := (h+o-7*n+114) div 31;
J := (h+o-7*n+114) mod 31+1;
// Retourne vrai si jour actuel = jour férié
Result:=
// Fêtes mobiles
( DateOf(Date) = DateOf(EncodeDate(A,M,J)) ) //Pâques
or ( DateOf(Date) = DateOf(EncodeDate(A,M,J) + 39) ) //Ascension
or ( DateOf(Date) = DateOf(EncodeDate(A,M,J) + 50) ) //Pentecote
// Fêtes fixes
or ( DateOf(Date) = DateOf(EncodeDate(A,12,25)) ) //Noël
or ( DateOf(Date) = DateOf(EncodeDate(A,1,1)) ) //Jour de l'an
or ( DateOf(Date) = DateOf(EncodeDate(A,5,1)) ) //Fête du Travail
or ( DateOf(Date) = DateOf(EncodeDate(A,5,8)) ) //Armistice de la WW2
or ( DateOf(Date) = DateOf(EncodeDate(A,7,14)) ) //Fête Nationale
or ( DateOf(Date) = DateOf(EncodeDate(A,8,15)) ) //Assomption
or ( DateOf(Date) = DateOf(EncodeDate(A,11,1)) ) //Toussaint
or ( DateOf(Date) = DateOf(EncodeDate(A,11,11)) ); //Armistice de la WW1
end;
cs_MUSUL
Messages postés7Date d'inscriptionvendredi 27 décembre 2002StatutMembreDernière intervention 9 mars 2007 16 mai 2005 à 14:45
code corrigé :
function JourFeriee(Date : TDateTime):boolean;
var
Year,Month,Day: Word;
A,b,c,d,e,f,g,h,i,J,k,l,M,n,o: integer;
begin
DecodeDate(Date,Year,Month,Day);
A := Year;
// module de calcul
l := A mod 19;
b := A div 100;
c := A mod 100;
d := b div 4;
e := b mod 4;
f := (b+8) div 25;
g := (b-f+1) div 3;
h := (19*l+b-d-g+15) mod 30;
i := c div 4;
k := c mod 4;
o := (32+2*e+2*i-h-k) mod 7;
n := (l+11*h+22*o) div 451;
M := (h+o-7*n+114) div 31;
J := (h+o-7*n+114) mod 31+1;
// Informe l'utilisateur d'un éventuel jour férié
Result:=
// Fêtes mobiles
( Date = DateOf(EncodeDate(A,M,J)) ) //Paque
or ( Date = DateOf(EncodeDate(A,M,J) + 39) ) //ascension
or ( Date = DateOf(EncodeDate(A,M,J) + 49) ) //Pentecote
// Fêtes fixes
or ( Date = DateOf(EncodeDate(A,12,25)) ) //noel
or ( Date = DateOf(EncodeDate(A,1,1)) ) //an
or ( Date = DateOf(EncodeDate(A,5,1)) ) //travail
or ( Date = DateOf(EncodeDate(A,5,8)) ) //Armistice de la WW2
or ( Date = DateOf(EncodeDate(A,7,14)) ) //Fête Nationale
or ( Date = DateOf(EncodeDate(A,8,15)) ) //Assomption
or ( Date = DateOf(EncodeDate(A,11,1)) ) //Toussaint
or ( Date = DateOf(EncodeDate(A,11,11)) ); //Armistice de la WW1
end;
cs_MUSUL
Messages postés7Date d'inscriptionvendredi 27 décembre 2002StatutMembreDernière intervention 9 mars 2007 16 mai 2005 à 13:49
Euh... Dîtes votre code là y marche que pour 2004 ou je rêve ?
nan pasque pour 2005 c carrement pas ça ^^;
selon lui les jours fériès mobiles sont
paque : 03/03/2005
ascension : 11/04/2005
pentecote : 21/04/2005
or je vous fais remarquer que les vrais dates sont :
paque : 27/03/2005
ascension : 05/05/2005
pentecote : 15/05/2005
Donc un code pas très utiles en l'état actuel des choses.
16 mai 2005 à 14:57
//Fonction qui teste si le jour est férié
function JourFeriee(Date : TDateTime):boolean;
var
Year,Month,Day: Word;
A,b,c,d,e,f,g,h,i,J,k,l,M,n,o: integer;
begin
DecodeDate(Date,Year,Month,Day);
A := Year;
// Module de calcul
l := A mod 19;
b := A div 100;
c := A mod 100;
d := b div 4;
e := b mod 4;
f := (b+8) div 25;
g := (b-f+1) div 3;
h := (19*l+b-d-g+15) mod 30;
i := c div 4;
k := c mod 4;
o := (32+2*e+2*i-h-k) mod 7;
n := (l+11*h+22*o) div 451;
M := (h+o-7*n+114) div 31;
J := (h+o-7*n+114) mod 31+1;
formmain.memo.lines.add(DateToStr(DateOf(EncodeDate(A,M,J) + 50)));
// Retourne vrai si jour actuel = jour férié
Result:=
// Fêtes mobiles
( DateOf(Date) = DateOf(EncodeDate(A,M,J)) ) //Pâques
or ( DateOf(Date) = DateOf(EncodeDate(A,M,J) + 39) ) //Ascension
or ( DateOf(Date) = DateOf(EncodeDate(A,M,J) + 50) ) //Pentecote
// Fêtes fixes
or ( DateOf(Date) = DateOf(EncodeDate(A,12,25)) ) //Noël
or ( DateOf(Date) = DateOf(EncodeDate(A,1,1)) ) //Jour de l'an
or ( DateOf(Date) = DateOf(EncodeDate(A,5,1)) ) //Fête du Travail
or ( DateOf(Date) = DateOf(EncodeDate(A,5,8)) ) //Armistice de la WW2
or ( DateOf(Date) = DateOf(EncodeDate(A,7,14)) ) //Fête Nationale
or ( DateOf(Date) = DateOf(EncodeDate(A,8,15)) ) //Assomption
or ( DateOf(Date) = DateOf(EncodeDate(A,11,1)) ) //Toussaint
or ( DateOf(Date) = DateOf(EncodeDate(A,11,11)) ); //Armistice de la WW1
end;
16 mai 2005 à 14:45
function JourFeriee(Date : TDateTime):boolean;
var
Year,Month,Day: Word;
A,b,c,d,e,f,g,h,i,J,k,l,M,n,o: integer;
begin
DecodeDate(Date,Year,Month,Day);
A := Year;
// module de calcul
l := A mod 19;
b := A div 100;
c := A mod 100;
d := b div 4;
e := b mod 4;
f := (b+8) div 25;
g := (b-f+1) div 3;
h := (19*l+b-d-g+15) mod 30;
i := c div 4;
k := c mod 4;
o := (32+2*e+2*i-h-k) mod 7;
n := (l+11*h+22*o) div 451;
M := (h+o-7*n+114) div 31;
J := (h+o-7*n+114) mod 31+1;
// Informe l'utilisateur d'un éventuel jour férié
Result:=
// Fêtes mobiles
( Date = DateOf(EncodeDate(A,M,J)) ) //Paque
or ( Date = DateOf(EncodeDate(A,M,J) + 39) ) //ascension
or ( Date = DateOf(EncodeDate(A,M,J) + 49) ) //Pentecote
// Fêtes fixes
or ( Date = DateOf(EncodeDate(A,12,25)) ) //noel
or ( Date = DateOf(EncodeDate(A,1,1)) ) //an
or ( Date = DateOf(EncodeDate(A,5,1)) ) //travail
or ( Date = DateOf(EncodeDate(A,5,8)) ) //Armistice de la WW2
or ( Date = DateOf(EncodeDate(A,7,14)) ) //Fête Nationale
or ( Date = DateOf(EncodeDate(A,8,15)) ) //Assomption
or ( Date = DateOf(EncodeDate(A,11,1)) ) //Toussaint
or ( Date = DateOf(EncodeDate(A,11,11)) ); //Armistice de la WW1
end;
16 mai 2005 à 13:49
nan pasque pour 2005 c carrement pas ça ^^;
selon lui les jours fériès mobiles sont
paque : 03/03/2005
ascension : 11/04/2005
pentecote : 21/04/2005
or je vous fais remarquer que les vrais dates sont :
paque : 27/03/2005
ascension : 05/05/2005
pentecote : 15/05/2005
Donc un code pas très utiles en l'état actuel des choses.