Teste si un jour donné est ferié ou pas.
Avec une fonction "Jour de Paques" qui n'est pas de moi (
http://www.developpez.com/delphi/faq/?page=datesparticule - merci psl)
Source / Exemple :
function Paques(Annee : Integer) : TDate;
var
Y,G,C,X,Z,D,E,N,P,J,M : Integer;
begin
{Algorithme valable pour les dates comprises entre 1583 et 4099}
Y := Annee;
G := (Y mod 19) + 1;
C := Trunc((Y / 100)) + 1;
X := Trunc(3 * C / 4) - 12;
Z := Trunc(((8 * C) + 5) / 25) - 5;
D := Trunc(((5 * Y) / 4) - X - 10);
E := ((11 * G)+ 20 + Z - X) mod 30;
if ((E = 25)
and (G > 11))
or (E = 24)
then E := E + 1;
N := 44 - E;
if N < 21
then N := N + 30;
P := N + 7 - ((D + N) mod 7);
if P > 31
then J := P - 31
else J := P;
if J = P
then M := 3
else M := 4;
Result := Trunc(EncodeDate(Annee, M, J));
end;
function isFerie(ZeDate : TDate) : Boolean;
var
MyDay : Word;
MyMonth : Word;
MyYear : Word;
MyPaques : TDateTime;
begin
ZeDate := Trunc(ZeDate);
Result := False;
MyDayOk := False;
DecodeDate(ZeDate, MyYear, MyMonth, MyDay);
// Verification dates paques
// Lundi de paques
if ZeDate = (Paques(MyYear) + 1) then begin
Result := True;
Exit; // >>> SORTIE
End;
// Jeudi de l'ascension
if ZeDate = (Paques(MyYear) + 39) then begin
Result := True;
Exit; // >>> SORTIE
End;
// Lundi de pentecote
if ZeDate = (Paques(MyYear) + 50) then begin
Result := True;
Exit; // >>> SORTIE
End;
// Jours particuliers
// Jour de l'an
if (MyMonth = 1) and (MyDay = 1) then begin
Result := True;
Exit; // >>> SORTIE
End;
// 1 et 8 mai
if (MyMonth = 5) and ((MyDay = 1) or (MyDay = 8)) then begin
Result := True;
Exit; // >>> SORTIE
End;
// 14 juillet
if (MyMonth = 7) and (MyDay = 14) then begin
Result := True;
Exit; // >>> SORTIE
End;
// 1 et 11 novembre
if (MyMonth = 11) and ((MyDay = 1) or (MyDay = 11)) then begin
Result := True;
Exit; // >>> SORTIE
End;
// Noel
if (MyMonth = 12) and (MyDay = 25) then begin
Result := True;
Exit; // >>> SORTIE
End;
end;
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.