1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
| PROCEDURE RetJourSem(pAnnee,pSem,pJour="LUNDI")
LOCAL
nJourRch est un entier
nJourAn est un entier
nJourTot est un entier
nDec est un entier
dDate est une Date
//NUMERO DU JOUR DU PREMIER DE L'AN
nJourAn = DateVersJour(pAnnee+"0101")
//NUMERO DU JOUR RECHERCHE
SELON pJour
CAS "LUNDI" : nJourRch = 1
CAS "MARDI" : nJourRch = 2
CAS "MERCREDI" : nJourRch = 3
CAS "JEUDI" : nJourRch = 4
CAS "VENDREDI" : nJourRch = 5
CAS "SAMEDI" : nJourRch = 6
CAS "DIMANCHE" : nJourRch = 7
AUTRE CAS
Erreur("Le passage du paramètre n°3 est incorrect.")
RENVOYER ""
FIN
//DETERMINE LA VALEUR A DECREMENTER
SELON nJourAn
CAS 1,2,3,4 : nDec = 1
CAS 5,6,7 : nDec = 0
FIN
//FORMATER NUMERO DE SEMAINE
SI pSem = 0 ALORS
SELON nJourRch
CAS 1,2,3,4
pAnnee = Val(pAnnee)-1
pSem = "53"
RENVOYER RetJourSem(pAnnee,pSem,pJour)
CAS 5,6,7
SI nJourRch < nJourAn ALORS
pAnnee = Val(pAnnee)-1
pSem = "52"
RENVOYER RetJourSem(pAnnee,pSem,pJour)
FIN
FIN
FIN
//CALCUL DU NB JOUR ECOULE PAR RAPPORT A LA REFENRENCE HF
nJourTot = DateVersEntier(pAnnee+"0101")+7*(Val(pSem)-nDec)-(nJourAn-nJourRch)
//CONVERTION AU FORMAT DATE
dDate = EntierVersDate(nJourTot)
RENVOYER dDate |
Partager