JOURS FERIES

sp40 Messages postés 1276 Date d'inscription mardi 28 octobre 2003 Statut Contributeur Dernière intervention 3 juillet 2015 - 9 nov. 2006 à 16:54
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 - 24 nov. 2006 à 10:51
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/40256-jours-feries

cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
24 nov. 2006 à 10:51
100% d' accord avec toi Cari ...
De plus, faudra prévoir que la fonction ne laisse pas tomber les jours fériés un samedi ou un dimanche ...

A+
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
24 nov. 2006 à 01:12
Y'a aussi la Pâque et les Pâques...
La Pâque juive a lieu le 15 nissan, et l'église romaine et l'église orthodoxe ont fixé chacune de leur côté la date de Pâques!

Moi, je suis prêt à envisager une conversion s'il y a une possibilité de faire le pont (pasque Pâques le lundi... pas terrible!).

Simonpelloquin, je te mets un 10/10 pour avoir essayé d'arranger les bidons, mais t'auras un 20/20 le jour où tu nous proposeras un "pont" acceptable... lol
Utilisateur anonyme
16 nov. 2006 à 20:45
Salut Mauricio ...
bien venu au club des incompris ...
lol
@+
elguevel Messages postés 718 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 22 novembre 2016 3
16 nov. 2006 à 20:41
Ah Mauricio tu va bien nous faire une petite BDD pour stocker toutes ses dates :-)
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
16 nov. 2006 à 20:14
Salut Damien!!! lol
très très bonne idée ça!
Je vais l' implémenter dans une de mes fonctions (conditions de paiment) que j' ai d' ailleurs posté sur delphifr mais qui n' a eu aucun succes, je suis un incompris, sniff ...
A+
elguevel Messages postés 718 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 22 novembre 2016 3
14 nov. 2006 à 10:28
Ouai mais si vous faite des enquetes sur moi avant de me repondre :-) .. Là c'est sur !
JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 18 novembre 2010 14
14 nov. 2006 à 10:27
LEVEUGLE Damien - ElGuevel (c) WebSite 2006. peut etre ?
elguevel Messages postés 718 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 22 novembre 2016 3
14 nov. 2006 à 10:19
Mais comment tout le monde sait que je m'appel Damien :-D
sp40 Messages postés 1276 Date d'inscription mardi 28 octobre 2003 Statut Contributeur Dernière intervention 3 juillet 2015 15
13 nov. 2006 à 17:54
Damien, ce qui m'interesse ici, c'est bien d'avoir les jours fériés pour un planning (pas uniquement paques...) à partir d'une des nombreuses fonctions de paques disponibles.
Merci FreDelph pour la fonction, si tu dis que c'est la meilleure... c'est vrai qu'on en trouve beaucoup de différentes !
cs_FreDelph Messages postés 31 Date d'inscription mercredi 16 avril 2003 Statut Membre Dernière intervention 13 novembre 2006
13 nov. 2006 à 11:37
C'est intéressant lorsqu'on programme un logiciel de planning d'avoir une fonction Jour de Paque qui permet de définir d'autres fériés. A l'usage beaucoup de ces fonctions donnent des résultats faux pour certaines années. C'est certainement la raison des multiples reprises de ce code...
elguevel Messages postés 718 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 22 novembre 2016 3
13 nov. 2006 à 11:02
Faut créer une fonction spirituelle alors ...

Et au fait c'est si important que çà d'avoir des fonctions qui calcules le jour de pâque ? çà déja été fait mainte et mainte fois non ?
laurentgirard Messages postés 4 Date d'inscription mardi 20 avril 2004 Statut Membre Dernière intervention 16 juillet 2008
13 nov. 2006 à 10:55
Juste une petite alerte concernant ces dates de Pâques. Effectivement, il y a cette formule qui, à défaut, fonctionne correctement.
MAIS n'oubliez pas qu'une seule et unique personne au monde peut remettre en cause la date de Pâques et la déplacer : c'est la Pape.
En effet, c'est lui qui au finish valide ou non la date normalement calculée par cet petite fonction.
elguevel Messages postés 718 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 22 novembre 2016 3
10 nov. 2006 à 16:38
Mondialement, oui !
sp40 Messages postés 1276 Date d'inscription mardi 28 octobre 2003 Statut Contributeur Dernière intervention 3 juillet 2015 15
10 nov. 2006 à 16:35
Oups, c'est vrai que le 15 aout c'est ferié... j'avais zappé (comme en général c'est aussi les vacances... je m'en étais pas rendu compte)

En Alsace, il y a donc 2 jours feriés en plus ???

Y a t il d'autres exceptions du même genre ?
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
10 nov. 2006 à 16:21
petite correction de la fonction paques (gain performance de 30%) :

function Paques(const Y : word) : TDate;
var
G,C,X,Z,D,E,N,P,J,M : word;
begin
G := (Y mod 19) + 1;
C := (Y div 100) + 1;
X := ((C * 3) shr 2) - 12;
Z := (((C shl 3) + 5) div 25) - 5;
D := ((Y * 5) shr 2) - X - 10;
E := ((G * 11) + 20 + Z - X) mod 30;

if ((E 25) and (G > 11)) or (E 24) then inc(E);

N := 44 - E;
if N < 21 then inc(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(Y, M, J);
end;
Utilisateur anonyme
10 nov. 2006 à 15:48
en dehors du vendredi saint (qui ne figurait pas sous Alsace/Moselle)
et l'ascension que j'ai loupé (paques + 39)

il reste quand même le 15 Août et il me semble qu'il en manque encore !
Mais comme certains on étés retirés mais toujours présents sur notre calendrier, ça n'arrange pas les choses.
Et pour finir ça fait plus de vingt ans que je ne travail plus sous un régime français, ce qui me donne encore plus de jours fériés qu'en Alsace/Moselle, tout ceci pour dire qu'il est possible que je me mélange un peut dans tout ça.

donc oui un peut fatigué :)
JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 18 novembre 2010 14
10 nov. 2006 à 14:21
cirec ? ça va ? pas trop fatigué ? :D
toutes ces dates ont été notées ici deja :p
relis bien la source et les commentaires
Utilisateur anonyme
10 nov. 2006 à 14:09
si tu savais ... mais shuuuuuuuuuuut

lol #^_^#
elguevel Messages postés 718 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 22 novembre 2016 3
10 nov. 2006 à 14:02
Fonctionnairreee .....
Utilisateur anonyme
10 nov. 2006 à 13:59
Salut,

pour l'Alsace et/où la Moselle il en manque encore
le vendredi saint (c'est le vendredi avant Paques)
l'ascension le 25 Mai (je ne sais pas si elle est fixe celle ci)
l'assomption le 15 Aout

je ne les ai pas tous en tête mais si tu fais une recherche sur le net tu devrais trouver ton bonheur

@+
Cirec
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
10 nov. 2006 à 11:17
mea culpa sur le 40 ... On m'aurait menti ? :o)
JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 18 novembre 2010 14
10 nov. 2006 à 11:03
ouep ça devient fouilli là =)
elguevel Messages postés 718 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 22 novembre 2016 3
10 nov. 2006 à 11:00
Fait un tableau de date, et une fonction de comparaison, çà sera plus visible et maintenable que des "ou".
sp40 Messages postés 1276 Date d'inscription mardi 28 octobre 2003 Statut Contributeur Dernière intervention 3 juillet 2015 15
10 nov. 2006 à 10:58
> Julio
J'ai intégré les jours feriés que tu me disais pour la fonction (au passage, pour plus d'exactitude, je l'ai renommé)

function isFrenchFerie(ZeDate : TDateTime; Localisation : string = 'metropole') : Boolean;
var
MyDay : Word;
MyMonth : Word;
MyYear : Word;
MyPaques : TDateTime;
begin
ZeDate := Trunc(ZeDate);
Result := False;
DecodeDate(ZeDate, MyYear, MyMonth, MyDay);
// Verification dates
Result :(ZeDate (Paques(MyYear) + 1))
or (ZeDate = (Paques(MyYear) + 39))
or (ZeDate = (Paques(MyYear) + 50))
or ((MyMonth 1) and (MyDay 1))
or ((MyMonth 5) and ((MyDay 1) or (MyDay = 8) or ((Localisation = 'martinique') and (MyDay = 22)) or ((Localisation = 'guadeloupe') and (MyDay = 27))))
or ((Localisation 'guyane') and (MyMonth 6) and (MyDay = 10))
or ((MyMonth 7) and (MyDay 14))
or ((MyMonth 11) and ((MyDay 1) or (MyDay = 11)))
or ((MyMonth 12) and (((Localisation 'reunion') and (MyDay = 20)) or (MyDay = 25) or ((Localisation = 'alsace') and (MyDay = 26))));
end;
JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 18 novembre 2010 14
10 nov. 2006 à 10:32
sp40 Messages postés 1276 Date d'inscription mardi 28 octobre 2003 Statut Contributeur Dernière intervention 3 juillet 2015 15
10 nov. 2006 à 10:20
ECONS > Je maintiens que le jeudi de l'ascension est bien à Paques + 39... en tout cas en 2006 ;)
sp40 Messages postés 1276 Date d'inscription mardi 28 octobre 2003 Statut Contributeur Dernière intervention 3 juillet 2015 15
10 nov. 2006 à 10:18
Merci Julio pour les jours feriés manquants... J'ignorais que les dom tom avait des jours feriés supplémentaires... ça donne envie d'aller s'installer au soleil ! :) (il faudrait quand même ajouter un paramètre géographique dans la fonction...)
En revanche, je ne crois pas que le vendredi saint soit un jour ferié...
Merci aussi pour la retouche... ça a l'air effectivement un peu plus propre !
Econs > Le but de la fonction est de dire si c'est un jour ferié ou pas... (J'ai précisé dans le commentaire que Paques n'était pas de moi) ;)
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
9 nov. 2006 à 21:41
On retrouve cette fonction du calcul du jour de paques sur presque tous les sites CodeS-SourceS maintenant ... en différents langages. Voici enfin le Delphi lol
Une info au passage, le jeudi de l'ascension, c'est 40 jours après Pâques, et pas 39.
JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 18 novembre 2010 14
9 nov. 2006 à 20:31
vient un probleme avec la date a entrer dans le record pour les dates changeantes,
si j'ai :
type
TFerie = Record
fDate: TDate;
fNom: String[32];
end;
avec :
fFeries[0].fDate := StrToDate('01/01/06');
ça passe car le 01/01 est férie tout le temps mais avec la date de paques, disons 25/04/06, l'an prochain ne sera plus le 25/04/07 :o

tu proposes quoi ?
elguevel Messages postés 718 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 22 novembre 2016 3
9 nov. 2006 à 20:01
ouai en gros autant stocker les dates dans un tableau et les comparer à la date du jour, non ? Cà serai plus propre à mon avis ! (surtout plus maintenable)

On peux même créer une structure avec le libellé du jour ferier, une description etc...
ex:
type TDateFerie = record
LaDate : TDate;
Libelle: string[50];
etc...
end;

Comme çà tu peux sortir un tas d'informations, plus complet qu'un simple Boolean.
JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 18 novembre 2010 14
9 nov. 2006 à 19:19
j'ai retouché la fonction IsFerie() (en ajoutant les dates fixes des iles françaises) :

function isFerie(ZeDate : TDate) : Boolean;
var
MyDay,MyMonth,MyYear : Word;
MyPaques : TDateTime;
begin
DecodeDate(ZeDate, MyYear, MyMonth, MyDay);
// Verification dates
Result :(ZeDate (Paques(MyYear) + 1))
or (ZeDate = (Paques(MyYear) + 39))
or (ZeDate = (Paques(MyYear) + 50))
or ((MyMonth 1) and (MyDay 1))
or ((MyMonth 5) and ((MyDay 1) or (MyDay = 8) or (MyDay = 22) or (MyDay = 27)))
or ((MyMonth 6) and (MyDay 10))
or ((MyMonth 7) and (MyDay 14))
or ((MyMonth 11) and ((MyDay 1) or (MyDay = 11)))
or ((MyMonth 12) and ((MyDay 20) or (MyDay = 25)))
;
end;

en fait, aucun IF ni CASE ^^
JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 18 novembre 2010 14
9 nov. 2006 à 18:08
Salut !

Il manque :

Alsace/Moselle
la Saint Étienne, le lendemain de Noël (26 décembre).

La Martinique
Un jour supplémentaire est prévu à la Martinique, le 22 mai, jour d'abolition de l'esclavage.

La Guadeloupe
Un jour supplémentaire est prévu à la Guadeloupe, le 27 mai, jour d'abolition de l'esclavage.

La Guyane
Un jour supplémentaire est prévu à la Guyane, le 10 juin, jour d'abolition de l'esclavage.

La Réunion
Un jour supplémentaire est prévu à la Réunion, le 20 décembre, jour d'abolition de l'esclavage.

D'autres jours fériés :
Vendredi saint (date variable):le vendredi précedent pâques
Pour Lundi de Pâques (date variable):http://fr.wikipedia.org/wiki/Calcul_de_la_date_de_Pâques

Je ferme les yeux sur les jours féries non français.
Fini ton travail =)
sp40 Messages postés 1276 Date d'inscription mardi 28 octobre 2003 Statut Contributeur Dernière intervention 3 juillet 2015 15
9 nov. 2006 à 16:54
un petit soucis d'affichage avec l'apostrophe...
Rejoignez-nous