DateTimePicker

manu5980 Messages postés 11 Date d'inscription vendredi 6 janvier 2006 Statut Membre Dernière intervention 24 janvier 2006 - 20 janv. 2006 à 09:34
manu5980 Messages postés 11 Date d'inscription vendredi 6 janvier 2006 Statut Membre Dernière intervention 24 janvier 2006 - 20 janv. 2006 à 12:06
Bonjour a tous, je voudrais savoir comment avoir un TDateTimePicker avec les dates fériés et par conséquent ne pas pouvoir les sélectionner dans le calendrier. merci d'avance manu

3 réponses

yannba Messages postés 133 Date d'inscription mercredi 4 janvier 2006 Statut Membre Dernière intervention 7 septembre 2010
20 janv. 2006 à 11:50
C'est pas de moi, j'avais trouvé sur internet, je ne sais plus trop où, stocké sur mon ordi, ...alors je te retransmets tout. Ca devrait resoudre on problème :

Il est souvent nécessaire, lors des manipulations de dates, de savoir si un jour est férié ou non (calcul des jours ouvrables, génération de calendriers, etc...).
Tout cela est facile pour les jours fériés de date fixe (jour de l'an, Noël, etc...) mais il en va tout autrement pour les jours fériés mobiles (Pâques, Pentecôte, etc...) qui sont calculés à partir de la date de Pâques


Lundi de Pâques = Pâques + 1 jour
Ascension = Pâques + 39 jours
Pentecôte = Pâques + 49 jours
Lundi de Pentecôte = Pâques + 50 jours



Le dimanche de Pâques correspond au premier dimanche suivant la première pleine lune du printemps.
La fonction ci-dessous calcule le jour de Pâques pour les dates comprises entre 1583 et 4099.

function Paques(Annee : Integer) : TDateTime;
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 := EncodeDate(Annee, M, J);
end;
0
yannba Messages postés 133 Date d'inscription mercredi 4 janvier 2006 Statut Membre Dernière intervention 7 septembre 2010
20 janv. 2006 à 12:03
En plus lisible ...
function Paques(Annee : Integer) : TDateTime;
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 := EncodeDate(Annee, M, J);
end;
0
manu5980 Messages postés 11 Date d'inscription vendredi 6 janvier 2006 Statut Membre Dernière intervention 24 janvier 2006
20 janv. 2006 à 12:06
oui d'accord ca je l'ai deja fait mais comment faire pour rendre invalide ces dates fériés dans le datetimepicker, c'est cela mon pb merci
0
Rejoignez-nous