vandouzen007
Messages postés48Date d'inscriptionlundi 21 octobre 2013StatutMembreDernière intervention29 mars 2014
-
24 oct. 2013 à 10:02
corentin.93
Messages postés1726Date d'inscriptiondimanche 20 mai 2007StatutMembreDernière intervention19 décembre 2015
-
1 nov. 2013 à 15:44
Bonjour,
J'ai le code ci-dessous et il calcul tous simplement le nombre de jour entre deux date saisi par l'utilisateur!!
Problème: J'aimerai bien y introduire dans le calcul les jours fériés et les weekend!!
C'est à dire quand le calcul du nombre de jour est lancé, il prendra compte aussi les jours non ouvrable!!
Quelqu'un peut m'aider svp!! Urgent
Merci
<html> <head> <script language="javascript"> function strtotime(str, now) {
if (strTmp == 'now') { return (new Date()).getTime()/1000; // Return seconds, not milli-seconds } else if (!isNaN(parse = Date.parse(strTmp))) { return (parse/1000); } else if (now) { now = new Date(now*1000); // Accept PHP-style seconds } else { now = new Date(); }
strTmp = strTmp.toLowerCase();
var process = function (m) { var ago = (m[2] && m[2] == 'ago'); var num = (num = m[0] == 'last' ? -1 : 1) * (ago ? -1 : 1);
switch (m[0]) { case 'last': case 'next': switch (m[1].substring(0, 3)) { case 'yea': now.setFullYear(now.getFullYear() + num); break; case 'mon': now.setMonth(now.getMonth() + num); break; case 'wee': now.setDate(now.getDate() + (num * 7)); break; case 'day': now.setDate(now.getDate() + num); break; case 'hou': now.setHours(now.getHours() + num); break; case 'min': now.setMinutes(now.getMinutes() + num); break; case 'sec': now.setSeconds(now.getSeconds() + num); break; default: var day; if (typeof (day = __is.day[m[1].substring(0, 3)]) != 'undefined') { var diff = day - now.getDay(); if (diff == 0) { diff = 7 * num; } else if (diff > 0) { if (m[0] == 'last') diff -= 7; } else { if (m[0] == 'next') diff += 7; } now.setDate(now.getDate() + diff); } } break;
default: if (/\d+/.test(m[0])) { num *= parseInt(m[0]);
switch (m[1].substring(0, 3)) { case 'yea': now.setFullYear(now.getFullYear() + num); break; case 'mon': now.setMonth(now.getMonth() + num); break; case 'wee': now.setDate(now.getDate() + (num * 7)); break; case 'day': now.setDate(now.getDate() + num); break; case 'hou': now.setHours(now.getHours() + num); break; case 'min': now.setMinutes(now.getMinutes() + num); break; case 'sec': now.setSeconds(now.getSeconds() + num); break; } } else { return false; } break; } return true; };
match = strTmp.match(new RegExp(regex, 'g')); if (match == null) { return false; }
for (i in match) { if (!process(match[i].split(' '))) { return false; } }
return (now.getTime()/1000); }
function calcul(total,d1,d2) { // on se limite à un prix avec un taux de TVA et des frais de port x=document.getElementById(d1); d1=x.value; // DATE 1 x=document.getElementById(d2);d2=x.value; // DATE 2
r=Math.round((strtotime(d2) - strtotime(d1))/(60*60*24)-1)+1; // On calcule x=document.getElementById(total);x.value=r; // On affecte } </script> </head> <body> <form name="frm"> DATE 1 : <input type="text" name="d1" id="d1" onBlur="calcul('total','d1','d2')" value="0"><br/> DATE 2 : <input type="text" name="d2" id="d2" onBlur="calcul('total','d1','d2')" value="0"><br/> <br/> Total : <input id="total" type="text" name="total" readonly="true"> </form> </body> </html>