Donnez vie à vos documents numériques !
 

Répondre à : Calcul jours ouvrés entre deux dates. – RÉSOLU

abracadabraPDF Forums PDF – Général Calcul jours ouvrés entre deux dates. – RÉSOLU Répondre à : Calcul jours ouvrés entre deux dates. – RÉSOLU

#53068
RafaelLopes
Membre

Merci merlin mais ça ne m’aide pas pour le problème actuel(mais merci quand même ! )
Bon je fais de nombreux test, j’me suis mis sur un nouveau document pdf pour que ce soit plus clair et j’essaye de faire plein de tests. Je met le PDF en pièce jointe pour que vous puissiez voir de quoi je parle !
ainsi que le code de ce document :

/* principe de fonctionnement, on calcule le jour de la semaine de la date de départ, on génère tous les jours fériés des années entre les deux dates, on calcul le nombre de jours hors weekend, on y soustrait les jours fériés hors weekend */
function joursOuvres()
{
var Date1 = new Date(this.getField(“dA”).value,this.getField(“dM”).value-1,this.getField(“dJ”).value);
var Date2 = new Date(this.getField(“fA”).value,this.getField(“fM”).value-1,this.getField(“fJ”).value);
var Date0= new Date(2000, 00, 03); /* Lundi de référence */
var diffA=this.getField(“fA”).value-this.getField(“dA”).value; /* calcule le nombre d’années entre les deux dates pour générer les jours fériés */

ferie= new Array();
for(q=0; q{
ferie[q]= new Array();
ferie[q][0]= new Date(this.getField(“dA”).value+q, 0, 1).getTime();
ferie[q][1]= new Date(this.getField(“dA”).value+q, 4, 1).getTime();
ferie[q][2]= new Date(this.getField(“dA”).value+q, 4, 8).getTime();
ferie[q][3]= new Date(this.getField(“dA”).value+q, 6, 14).getTime();
ferie[q][4]= new Date(this.getField(“dA”).value+q, 7, 15).getTime();
ferie[q][5]= new Date(this.getField(“dA”).value+q, 10, 1).getTime();
ferie[q][6]= new Date(this.getField(“dA”).value+q, 10, 11).getTime();
ferie[q][7]= new Date(this.getField(“dA”).value+q, 11, 25).getTime();
var g = (this.getField(“dA”).value+q) % 19;
var c = Math.floor((this.getField(“dA”).value+q) / 100);
var c_4 = Math.floor(c / 4);
var h = (19 * g + c – c_4 – Math.floor((8 * c + 13) / 25) + 15) % 30;
var k = Math.floor(h / 28);
var i = (k * Math.floor(29 / (h + 1)) * Math.floor((21 – g) / 11) – 1) * k + h;
var jourSemaine = (Math.floor( (this.getField(“dA”).value+q) / 4) + (this.getField(“dA”).value+q) + i + 2 + c_4 – c) % 7; //jour de Pâques (0=dimanche, 1=lundi….)
var presJour = 28 + i – jourSemaine; //Jour de Pâques en jours en partant de 1 = 1er mars
var moisP=0;
var jourP=0;
if(presJour>31) {moisP=3;}
else{moisP=2;}
if(mois==2) {jourP=presJour;}
else{jourP=presJour – 31;}
var dPacques= new Date(this.getField(“dA”).value+q, moisP, jourP).getTime();
ferie[q][8]= dPacques+(1000*60*60*24);
ferie[q][9]= ferie[q][8]+(38*(1000*60*60*24));
ferie[q][10]=ferie[q][8]+(49*(1000*60*60*24));
}/* génération des jours fériés, pour Pacques et les 2 autres jours mobiles je me suis servi de formules trouvés sur le net */
index=1;
var Date11=Date1.getTime();
var Date22=Date2.getTime();
var Date00=Date0.getTime();

if(Date00{
for(m=Date00; m{
if(index<7)
{ index+=1;}
else if(index>6)
{
index=1;
}
}/* permet de savoir le jour de la semaine de la date de départ en se servant du lundi de référence */
var index2=index;
this.getField(“jO”).value=0; /* Nombre de jours ouvres */
this.getField(“nbrJT”).value=0; /* ombre total de jours */
this.getField(“nbrF”).value=0; /* nombre de feries EN SEMAINE */
this.getField(“nbrJWE”).value=0; /* nombre de jours de week-end */

for(n=Date11; n{
this.getField(“nbrJT”).value+=1;
if(index{
this.getField(“jO”).value+=1;
index+=1;
}

else if(index<7)
{
index+=1;
this.getField(“nbrJWE”).value+=1;
}
else if(index>6)
{
index=1;
this.getField(“nbrJWE”).value+=1;
}

} /* compte le nombre de jours hors weekend entre les deux dates */

for(o=Date11; o{
if(index2{
for(j=0; j{ for(g=0; g{if(o==ferie[j][g])
{this.getField(“jO”).value-=1;
  this.getField(“nbrF”).value+=1;}
}}
index2+=1;
}
else if(index2<7){index2+=1;}
else if(index2>6){ index2=1;}
} /* exclue les jours fériés hors weekend du nombre de jours hors hors weekend calculé précédemment */
}

}

pour toute l’année 2012 j’ai donc 366 Jours (ça c’est bon =D ), 259 jours ouvres(à la place de 253), 3 jours feries en semaine(à la place de 8!!!) et 104jours de weekend(à la place de 105) !

[attachment deleted by admin]