Page 1 sur 1

calcul avec controle de type durée

MessagePublié: 12 Jan 2004 à 15:04
par soler
J'ai créé un contrôle de type Durée qui mepermet de sélectionner une plage horaire : de 12:00 heures à 13:00 heures, par exemple.Seulement, j'aimerais savoir si on peut calculer cette durée en temps:01h00 pour l'exemple ci dessus.Merci

Re: calcul avec controle de type durée

MessagePublié: 12 Jan 2004 à 15:17
par polbusse
ce code retourne le nombre de jours entre 2 dates au format "jj/mm/aaaa":function CalculDuree(d1,d2) { var result ;if (d1 == '' | d2 == '' ) { result = ' ... '; } else { var xxchaine = d1; var xxmois = xxchaine.substring(0,xxchaine.indexOf('/')); var xxchaine = xxchaine.substring(xxchaine.indexOf('/')+1,xxchaine.length); var xxjour = xxchaine.substring(0,xxchaine.indexOf('/')); var xxchaine = xxchaine.substring(xxchaine.indexOf('/'),xxchaine.length); xxdOuverture = new Date(xxjour +'/'+ xxmois + xxchaine); var xxchaine = d2; var xxmois = xxchaine.substring(0,xxchaine.indexOf('/')); var xxchaine = xxchaine.substring(xxchaine.indexOf('/')+1,xxchaine.length); var xxjour = xxchaine.substring(0,xxchaine.indexOf('/')); var xxchaine = xxchaine.substring(xxchaine.indexOf('/'),xxchaine.length); xxdCloture = new Date(xxjour +'/'+ xxmois + xxchaine); var xxresult = (xxdCloture.getTime() - xxdOuverture.getTime())/86400000; if (xxresult.indexOf('.') == -1 ) { result = xxresult; } else { result = xxresult.substr(0,xxresult.indexOf('.')); }}return result;}

Re: calcul avec controle de type durée

MessagePublié: 13 Jan 2004 à 09:37
par Christine
Voici en Formules @ ce que j'utilise dans une de mes bases. Cela fonctionne aussi bien dans un champ calculé d'un masque que dans une colonne calculée d'une vue...@TextToNumber(@Text(@TextToNumber(@Left(@Left(@Right(@Text(Duree);8);5);2)))+","+@If(@TextToNumber(@Right(@Left(@Right(@Text(Duree);8);5);2))/0,6<10;"0"+@Text(@Integer(@TextToNumber(@Right(@Left(@Right(@Text(Duree);8);5);2))/0,6));@Text(@Integer(@TextToNumber(@Right(@Left(@Right(@Text(Duree);8);5);2))/0,6))))-@TextToNumber(@Text(@TextToNumber(@Left(@Left(@Text(Duree);5);2)))+","+@If(@TextToNumber(@Right(@Left(@Text(Duree);5);2))/0,6<10;"0"+@Text(@Integer(@TextToNumber(@Right(@Left(@Text(Duree);5);2))/0,6));@Text(@Integer(@TextToNumber(@Right(@Left(@Text(Duree);5);2))/0,6))))Petite précision, cette formule calcule la durée en format décimal : pour 1 h 30 elle t'indique 1,5. A adapter !!! Désolé, ce n'est pas très simple, mais je n'ai pas trouvé mieux à l'époque !

Re: calcul avec controle de type durée

MessagePublié: 13 Jan 2004 à 12:17
par Oguruma59
diff entre deux champs de type date, il faut diviser par 86400, ce qui correspond à 24 heures60 minutes60 secondessoit 24*60*60ensuite à toi d'interprêter cette valeur pour la convertir en donnée correctement lisible ; ici il faudra travailler sur la partie décimale pour récupérer les heures, minutes, secondesretour aux règgles de calculs sur le temps que l'on appris... y a longtemps