Code permettant de calculer à partir de la date du jour (possibilité de changer le code pour accepter une autre date) et du nombre de jour ouvrable voulu(ici 15 (cpt_j < 16)) la date à partir de laquelle il est possible de.
--->Prends en compte les jours feries.
Ex: on est le 5 septembre + 15 jours ouvrables = 26 septembre 2003.
Source / Exemple :
function JoursFeries (an){
var JourAn = new Date(an, "00", "01");
var FeteTravail = new Date(an, "04", "01");
var Victoire1945 = new Date(an, "04", "08");
var FeteNationale = new Date(an,"06", "14");
var Assomption = new Date(an, "07", "15");
var Toussaint = new Date(an, "10", "01");
var Armistice = new Date(an, "10", "11");
var Noel = new Date(an, "11", "25");
//**var SaintEtienne = new Date(an, "11", "26");**//
var G = an%19;
var C = Math.floor(an/100);
var H = (C - Math.floor(C/4) - Math.floor((8*C+13)/25) + 19*G + 15)%30;
var I = H - Math.floor(H/28)*(1 - Math.floor(H/28)*Math.floor(29/(H + 1))*Math.floor((21 - G)/11));
var J = (an*1 + Math.floor(an/4) + I + 2 - C + Math.floor(C/4))%7;
var L = I - J;
var MoisPaques = 3 + Math.floor((L + 40)/44);
var JourPaques = L + 28 - 31*Math.floor(MoisPaques/4);
var Paques = new Date(an, MoisPaques-1, JourPaques);
//**var VendrediSaint = new Date(an, MoisPaques-1, JourPaques-2);**//
var LundiPaques = new Date(an, MoisPaques-1, JourPaques+1);
var Ascension = new Date(an, MoisPaques-1, JourPaques+39);
var Pentecote = new Date(an, MoisPaques-1, JourPaques+49);
var LundiPentecote = new Date(an, MoisPaques-1, JourPaques+50);
//**SaintEtienne et Vendredi Saint sont des fêtes exclusivement**//
//**alscacienne. On les ignore dans notre cas.**//
return new Array(JourAn, Paques, LundiPaques, FeteTravail, Victoire1945, Ascension, Pentecote, LundiPentecote, FeteNationale, Assomption, Toussaint, Armistice, Noel);
}
//******************************************************************************************************************************//
//************************Calcul de la date minimum de portage (15 jours ouvrables après la date du jour)***********************//
//******************************************************************************************************************************//
function calc_date_mini(){
var date_now = new Date();
var date_now_annee = date_now.getFullYear();
var date_now_mois = date_now.getMonth();
var date_now_jour = date_now.getDate();
//**init. des compteurs**//
var cpt_i = 0;
var cpt_j = 0;
var cpt_k = 0;
//**init. des tableaux récupérant les jours feries de l'annee en cours et de l'annee suivante.**//
var tab_1=new Array;
var tab_2=new Array;
tab_1=JoursFeries(date_now.getFullYear());
tab_2=JoursFeries(date_now.getFullYear()+1);
for(cpt_i=0; cpt_j < 16 ; cpt_i++) {
var date_eval = new Date(date_now_annee, date_now_mois, date_now_jour+cpt_i);
var day_date_eval = date_eval.getDay();
if((day_date_eval != 6) && (day_date_eval != 0)) {
cpt_j++;
for(cpt_k = 0; cpt_k <13; cpt_k++){
if(date_eval.getMonth() == tab_1[cpt_k].getMonth() && date_eval.getFullYear() == tab_1[cpt_k].getFullYear() && date_eval.getDate() == tab_1[cpt_k].getDate()){
cpt_j--;
break;
}
if(date_eval.getMonth() == tab_2[cpt_k].getMonth() && date_eval.getFullYear() == tab_2[cpt_k].getFullYear() && date_eval.getDate() == tab_2[cpt_k].getDate()){
cpt_j--;
break;
}
}
}
}
return date_eval;
}
//******************************************************************************************************************************//
//************************Fonction de vérification si une date entrée est au de^là de la date minimum***************************//
//******************************************************************************************************************************//
function verif_date_mini(date_entree, date_mini){
var date_entree_n = new Date(date_entree);
var date_mini_n = new Date(date_mini);
if (date_entree_n != "") {
//**Transformation d'une date en jj/mm/aaaa en mm/jj/aaaa puis en date :Fri Sep 5 15:14:41 UTC+0200 2003)**//
date_entree_jour = date_entree.substring(0,2);
date_entree_mois= date_entree.substring(3,5);
date_entree_annee = date_entree.substring(6,10);
nouvelle_date_entree = new Date(date_entree_annee, date_entree_mois-1, date_entree_jour);
if (nouvelle_date_entree.getTime()<date_mini_n.getTime()) {
return 0;
}
else {
return 1;
}
}
}
//************************Fin du code de JORRY Julien***************************************************************************//
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.