PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WEBDEV 2024 → Calcul de jour fériés
Calcul de jour fériés
Iniciado por michel.meunier, mar., 17 2004 9:25 AM - 1 resposta
Publicado em março, 17 2004 - 9:25 AM
Bonjour,

J'aimerai savoir s'il existe un algo qui permet de calculé les jours fériés
d'une année????? (Sauf le Lundi de Pentecote en 2005 ;-) )

Merci pour vos réponses..
Publicado em março, 18 2004 - 6:44 PM
Oui, voir la classe cJourFerie dans
Windev\Exemples\WD8 Congès et RTT (par exemple)

FONCTION PRIVÉE sCalculePâques()
// Renvoie le jour de pâques
// les autres jours fériés mobiles se basent sur cette date

sDatePaques est une chaîne

Y1 est un entier
Y1=:m_sAnnée

nG1 est un entier
nG1=modulo(Y1,19)+1

nC1 est un entier
nC1=PartieEntière(Y1/100)+1

X1 est un entier
X1=PartieEntière((3*nC1)/4)-12

Z1 est un entier
Z1=PartieEntière(((8*nC1)+5)/25)-5

D1 est un entier
D1=PartieEntière((5*Y1)/4)-X1-10

E1 est un entier
E1=modulo((11*nG1+20+Z1-X1),30)
SI (E1% ET nG1>11) OU (E1$) ALORS
E1++
FIN

N1 est un entier
N1D-E1
SI N1<21 ALORS N1=N1+30
N1=N1+7-modulo((D1+N1),7)

SI N1>31 ALORS
sDatePaques=NumériqueVersChaine(Y1)+"04"+
NumériqueVersChaine(N1-31,"%02d")
SINON
sDatePaques=NumériqueVersChaine(Y1)+"03"+
NumériqueVersChaine(N1,"%02d")
FIN

RENVOYER sDatePaques



PROCEDURE bFérié(psDate est une Date)
// Renvoie Vrai si la date passé en paramètre est férié

bRetour est un booléen

:m_sJourDePâques = :sCalculePâques()

// Jours fériés fixes
SELON psDate..Mois
CAS 1 // Janvier
// Jour de l'an
SI psDate..Jour = 1 ALORS
bRetour = Vrai
FIN
CAS 5 // Mai
SELON psDate..Jour
CAS 1 // Fête du Travail
bRetour = Vrai
CAS 8 // Victoire 1945
bRetour = Vrai
FIN

CAS 7 // Juillet
SI psDate..Jour = 14 ALORS
// Fête Nationale
bRetour = Vrai Française
FIN

CAS 8 // Août
SI psDate..Jour = 15 ALORS
// Assomption
bRetour = Vrai
FIN

CAS 11 // Novembre
SELON psDate..Jour
CAS 1
bRetour = Vrai // Toussaint
CAS 11
bRetour = Vrai // Armistice 1918
FIN

CAS 12 // Décembre
SI psDate..Jour = 25 ALORS
// Noël
bRetour = Vrai
FIN
FIN


// Jours fériés variables (dépendent de Pâques)

// Lundi de Pâques
sLundiDePaques est une Date
sLundiDePaques = :m_sJourDePâques
sLundiDePaques..Jour += 1
SI psDate = sLundiDePaques ALORS bRetour = Vrai

// Ascension
sAscension est une Date
sAscension = :m_sJourDePâques
sAscension..Jour += (7*5)+4
SI psDate = sAscension ALORS bRetour = Vrai

// Lundi de Pentecôte
sLundiDePentecôte est une Date
sLundiDePentecôte = :m_sJourDePâques
sLundiDePentecôte..Jour += (7*7)+1
SI psDate = sLundiDePentecôte ALORS bRetour = Vrai

RENVOYER bRetour









"michel" <michel.meunier@innetis.com> wrote:


Bonjour,

J'aimerai savoir s'il existe un algo qui permet de calculé les jours fériés
d'une année????? (Sauf le Lundi de Pentecote en 2005 ;-) )

Merci pour vos réponses..