Nombre de jour entre deux dates sans compter samedi et dimanche

meryazer Messages postés 23 Date d'inscription dimanche 13 mai 2007 Statut Membre Dernière intervention 26 décembre 2009 - 27 août 2009 à 14:06
bizibiz17 Messages postés 142 Date d'inscription mardi 17 janvier 2006 Statut Membre Dernière intervention 29 août 2009 - 29 août 2009 à 19:03
Bonjour,
je veux faire une fonction qui calcule le nombre de jours entre deux dates mais sans tenir en compte les samedis et les dimanches, j'ai pu récupérer (à l'aide d'un code existant) le nombre de jours mais weekend inclu, voici le code:
function calculer()
{
var date1=document.forms['demande_form'].elements['date_debut'].value
var date2=document.forms['demande_form'].elements['date_fin'].value
var date3=document.forms['demande_form'].elements['date_demande'].value
var reg=new RegExp("-", "g");
var tableau1=date1.split(reg);
date1=tableau1[2]+"/"+tableau1[1]+"/"+tableau1[0];
 var tableau2=date2.split(reg);
date2=tableau2[2]+"/"+tableau2[1]+"/"+tableau2[0];
 var tableau3=date3.split(reg);
date3=tableau3[2]+"/"+tableau3[1]+"/"+tableau3[0];
var debut = temps(date1.split("/"));
var fin = temps(date2.split("/"));
var demande = temps(date3.split("/"));
var diff = (debut - demande) / (1000 * 60 * 60 * 24);
if(diff<=0)
{
document.forms['demande_form'].elements['nb_jours'].style.color="#e7200b";
document.forms['demande_form'].elements['nb_jours'].value="Erreur : date debut inférieure ou égale à date d'aujourd'hui";
}
else if(diff<=15)
{
document.forms['demande_form'].elements['nb_jours'].style.color="#e7200b";
document.forms['demande_form'].elements['nb_jours'].value="Erreur : Le congé ne peut commencer qu'à partir du 15 ème jours après la demande";
}
else
{
if(debut==fin)
{
document.forms['demande_form'].elements['nb_jours'].style.color="";
document.forms['demande_form'].elements['nb_jours'].value="1";
}
else
   {
var nb = (fin - debut) / (1000 * 60 * 60 * 24); // + " jours";
if(nb>0)
{	
nb=nb+1;
if(nb>document.getElementById("id_solde").value)
{
document.forms['demande_form'].elements['nb_jours'].style.color="#e7200b";
document.forms['demande_form'].elements['nb_jours'].value="Erreur : nombre de jours demandés supérieur à votre solde";
}
else
{
document.forms['demande_form'].elements['nb_jours'].style.color="";
document.forms['demande_form'].elements['nb_jours'].value=nb;
}
}
if(nb<0)
{
document.forms['demande_form'].elements['nb_jours'].style.color="#e7200b";
document.forms['demande_form'].elements['nb_jours'].value="Erreur : date fin inférieure à date debut";
}
}
}
}

merci d'avance

1 réponse

bizibiz17 Messages postés 142 Date d'inscription mardi 17 janvier 2006 Statut Membre Dernière intervention 29 août 2009 1
29 août 2009 à 19:03
Salut,

regarde ici en inversant les traitements.
0
Rejoignez-nous