Erreur(s) caché(s) dans la source ?

Résolu/Fermé
Aneoz02 Messages postés 65 Date d'inscription jeudi 21 octobre 2010 Statut Membre Dernière intervention 28 décembre 2010 - 21 oct. 2010 à 17:28
Aneoz02 Messages postés 65 Date d'inscription jeudi 21 octobre 2010 Statut Membre Dernière intervention 28 décembre 2010 - 25 oct. 2010 à 11:07
Bonjour,

Je fais un gadget Windows qui me sera utile pour mon entreprise. Cela fais plusieurs jours que je cherche comment calculer un prix de main d'oeuvre avec l'heure de départ et de fin de manutention.

Par exemple (pour 10€/H):
			- Heure de départ : 01h02m03s
			- Heure de fin : 02h02m03s
			- Temps de main d'oeuvre : 01h00m00s
			- Prix : 10€


J'espère que vous comprenez le sens du gadget. J'en suis arriver a ce code :
<html>
	<head>
		<style type="text/css">
			body
			{
				width:200px;
				height:300px;
				padding:10px;
				text-align:center;
				border:solid 1px black;
			}
		</style>
		<script type="text/JavaScript">
			var prixHeure=10;
			var prixMinute = prixHeure/60;
			var prixSeconde = prixMinute/60;

			function recupHeure()
			{
				var ResultatA=new Date;
				var HeuresA=ResultatA.getHours();
				var MinutesA=ResultatA.getMinutes();
				var SecondesA=ResultatA.getSeconds();
				
				if (SecondesA<10) SecondesA="0"+SecondesA;
				if (MinutesA<10) MinutesA="0"+MinutesA;
				if (HeuresA<10) HeuresA="0"+HeuresA;
				
				document.heureDepart.departh.value=HeuresA;
				document.heureDepart.departm.value=MinutesA;
				document.heureDepart.departs.value=SecondesA;
				actualiserHeure();
			}
			
			function actualiserHeure()
			{
				var ResultatB=new Date;
				var HeuresB=ResultatB.getHours();
				var MinutesB=ResultatB.getMinutes();
				var SecondesB=ResultatB.getSeconds();
				
				if (SecondesB<10) SecondesB="0"+SecondesB;
				if (MinutesB<10) MinutesB="0"+MinutesB;
				if (HeuresB<10) HeuresB="0"+HeuresB;
				
				document.heureActuel.actuelh.value=HeuresB;
				document.heureActuel.actuelm.value=MinutesB;
				document.heureActuel.actuels.value=SecondesB;
				calculSeconde();
			}
			
			function calculSeconde()
			{
				var SecondeDepart=(HeuresA*60)+(MinutesA*60)+SecondesA;
				var SecondeActuel=(HeuresB*60)+(MinutesB*60)+SecondesB;
				var Differrence=SecondeActuel-SecondeDepart;
				
				document.tempsPasser.temph.value=SecondeActuel;
				document.tempsPasser.tempm.value=SecondeDepart;
				document.tempsPasser.temps.value=Differrence;
				calculPrix();
			}

			function calculPrix()
			{
				var prix=Math.round(Differrence*prixSeconde);
				document.facture.prixcalculer.value=prix;
				Actualisation=setTimeout('actualiserHeure()',1000);
			}
			
			function rasee()
			{ 
				clearTimeout(Actualisation);
				HeuresA=0;
				HeuresB=0;
				SecondesA=0;
				SecondesB=0;
				MinutesA=0;
				MinutesB=0;
				prix=0;
				document.heureDepart.departh.value=HeuresA;
				document.heureDepart.departm.value=MinutesA;
				document.heureDepart.departs.value=SecondesA;
				document.heureActuel.actuelh.value=HeuresB;
				document.heureActuel.actuelm.value=MinutesB;
				document.heureActuel.actuels.value=SecondesB;
				document.facture.prixcalculer.value=prix;
			}
		</script>
	</head>
	<body>
		<form id="heureDepart" name="heureDepart">
			<strong><em>Heure de départ :</em></strong><br/>
			<input id="departh" type="button" name="departh"/> h
			<input id="departm" type="button" name="departm"/> m
			<input id="departs" type="button" name="departs"/> s
		</form>
		<form id="heureActuel" name="heureActuel">
			<strong><em>Heure actuel :</em></strong><br/>
			<input id="actuelh" type="button" name="actuelh"/> h
			<input id="actuelm" type="button" name="actuelm"/> m
			<input id="actuels" type="button" name="actuels"/> s
		</form>
		<form id="tempsPasser" name="tempsPasser">
			<strong><em>Temps passer :</em></strong><br/>
			<input id="temph" type="button" name="temph"/> -
			<input id="tempm" type="button" name="tempm"/> =
			<input id="temps" type="button" name="temps"/>
		</form>
		<form id="facture" name="facture">
			<strong><em>Prix :</em></strong><br/>
			<input id="prixcalculer" type="button" name="prixcalculer"/> €
			<br/><br/>
			<input type="button" value="Start" onclick="recupHeure()"/>
			<input type="button" value="Reset" onclick="rasee()"/><br/>
			<input type="button" value="Stop" onclick="clearTimeout(Actualisation)"/>
			<input type="button" value="Reprendre" onclick="actualiserHeure()"/>
		</form>
	</body>
</html>


Une ou plusieurs erreurs sont dans ce code mais je n'arrive pas à les dénichés.
Je pense que sa se bloque lorsque sa arrive a la fonction "calculSeconde()".

Est-ce que quelqu'un aurais une solution à me proposer svp ?

Merci d'avoir lu mon problème et a tous ceux qui prendrons le temps de me répondre.

2 réponses

Aneoz02 Messages postés 65 Date d'inscription jeudi 21 octobre 2010 Statut Membre Dernière intervention 28 décembre 2010 5
24 oct. 2010 à 16:08
Bonjour,

Je viens posté la solution pour ce fameux calcul, voici le code que j'ai mis au point et qui fonctionne comme je le voulais :)

<!DOCTYPE html>
<html>
<head>
<style type="text/css">
	body {
		text-align:center;
	}
	#commande {
		width:250px;
	}
</style>
<script type="text/javascript">
	var seconded = 0;
	var minuted = 0;
	var heured = 0;

	function heureDeDepart() {
		/* Cette fonction récupère l'heure de
		départ et lance le reste du programme */
		newDD = new Date();
		seconded = newDD.getSeconds();
		minuted = newDD.getMinutes();
		heured = newDD.getHours();

		document.heureDepart.hDheure.value = heured;
		document.heureDepart.hDminute.value = minuted;
		document.heureDepart.hDseconde.value = seconded;
		heureActualiser();
		calculDuTempsPasse();
		chronoTempsPasse()
		calculDuPrix();
	}

	var secondea = 0;
	var minutea = 0;
	var heurea = 0;

	function heureActualiser() {
		/* Cette fonction actualise l'heure
		10 fois toutes les seconde */
		newDA = new Date();
		secondea = newDA.getSeconds();
		minutea = newDA.getMinutes();
		heurea = newDA.getHours();

		document.heureActuel.hAheure.value = heurea;
		document.heureActuel.hAminute.value = minutea;
		document.heureActuel.hAseconde.value = secondea;
		comptea = setTimeout('heureActualiser()',100);
	}

	var resultata = 0;
	var resultatd = 0;
	var tempsPasse = 0;

	function calculDuTempsPasse() {
		/* Cette fonction evitera un bug du chrono
		si l'ordinateur utilisé se met en veille,
		le résultat n'apparait pas à l'écran */
		resultata = ((heurea * 60) * 60) + (minutea * 60) + secondea;
		resultatd = ((heured * 60) * 60) + (minuted * 60) + seconded;
		tempsPasse = resultata - resultatd;
		
		comptet = setTimeout('calculDuTempsPasse()',100);
	}

	var secondec = 0;
	var minutec = 0;
	var heurec = 0;

	function chronoTempsPasse() {
		/* Cette fonction reconstitue un chronomètre
		en fonction de la variable "tempsPasse"
		10 fois toutes les seconde */
		secondec = tempsPasse % 60;
		minutec = Math.floor(tempsPasse / 60);
		heurec = Math.floor((tempsPasse / 60) / 60);
		
		document.chronoTemps.cTheurec.value = heurec;
		document.chronoTemps.cTminutec.value = minutec;
		document.chronoTemps.cTsecondec.value = secondec;
		comptec = setTimeout('chronoTempsPasse()',100);
	}

	var prix = 0;
	var prixHeure = 10;
	var prixMinute = prixHeure / 60;
	var prixSeconde = prixMinute / 60;

	function calculDuPrix() {
		/* Cette fonction calcul le prix
		final en fonction du chronomètre
		10 fois toutes les seconde */
		prix1 = heurec * prixHeure;
		prix2 = minutec * prixMinute;
		prix3 = secondec * prixSeconde;
		prixFinal = prix1 + prix2 + prix3;
		
		document.calculPrix.cPprix.value = prixFinal.toFixed(2);
		comptep = setTimeout('calculDuPrix()',100);
	}
</script>
</head>
<body>
	<div id="contenu">
	<table>
	<tr>
	<form id="heureDepart" name="heureDepart">
		<td>Heure de départ :</td>
		<td><input id="hDheure" type="text" name="hDheure" size="1"/> h</td>
		<td><input id="hDminute" type="text" name="hDminute" size="1"/> m</td>
		<td><input id="hDseconde" type="text" name="hDseconde" size="1"/> s</td>
	</form>
	</tr>
	<tr>
	<form id="heureActuel" name="heureActuel">
		<td>Heure actuel :</td>
		<td><input id="hAheure" type="text" name="hAheure" size="1"/> h</td>
		<td><input id="hAminute" type="text" name="hAminute" size="1"/> m</td>
		<td><input id="hAseconde" type="text" name="hAseconde" size="1"/> s</td>
	</form>
	</tr>
	<tr>
	<form id="chronoTemps" name="chronoTemps">
		<td>Calcul du temps :</td>
		<td><input id="cTheurec" type="text" name="cTheurec" size="1"/> h</td>
		<td><input id="cTminutec" type="text" name="cTminutec" size="1"/> m</td>
		<td><input id="cTsecondec" type="text" name="cTsecondec" size="1"/> s</td>
	</form>
	</tr>
	<tr>
	<form id="calculPrix" name="calculPrix">
		<td>Prix :</td>
		<td colspan="3"><input id="cPprix" type="text" name="cPprix" size="5"/> €</td>
	</tr>
	<tr>
		<td colspan="4"><input id="commande" type="button" value="(Re)Start" onclick="heureDeDepart()"/></td>
	</form>
	</tr>
	</table>
	</div>
</body>
</html>


Et voila, en espérant que sa pourra aider quelqu'un :).
1
Aneoz02 Messages postés 65 Date d'inscription jeudi 21 octobre 2010 Statut Membre Dernière intervention 28 décembre 2010 5
Modifié par Aneoz02 le 25/10/2010 à 11:07
Petite rectification de la fonction chronoTempsPasse() :

function chronoTempsPasse() { 
 secondec = tempsPasse % 60; 
 minutec = Math.floor((tempsPasse / 60) % 60); 
 heurec = Math.floor(((tempsPasse / 60) / 60) % 60); 
  
 if(heurec < 10) document.chronoTemps.cTheurec.value = "0" + heurec; 
 else document.chronoTemps.cTheurec.value = heurec; 
 if(minutec < 10) document.chronoTemps.cTminutec.value = "0" + minutec; 
 else document.chronoTemps.cTminutec.value = minutec; 
 if(secondec < 10) document.chronoTemps.cTsecondec.value = "0" + secondec; 
 else document.chronoTemps.cTsecondec.value = secondec; 
  
 comptec = setTimeout('chronoTempsPasse()',100); 
}
0
Lord Zero Messages postés 459 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 15 juin 2018 115
Modifié par Lord Zero le 21/10/2010 à 18:25
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 

<head> 
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" /> 
<title>Heure de départ</title> 
  <style type="text/css"> 
   body 
   { 
    width:200px; 
    height:300px; 
    padding:10px; 
    text-align:center; 
    border:solid 1px black; 
   } 
  </style> 
  <script type="text/javascript"> 
   var prixHeure=10; 
   var prixMinute = prixHeure/60; 
   var prixSeconde = prixMinute/60; 

   function recupHeure() 
   { 
    var ResultatA=new Date; 
    var HeuresA=ResultatA.getHours(); 
    var MinutesA=ResultatA.getMinutes(); 
    var SecondesA=ResultatA.getSeconds(); 
     
    if (SecondesA<10) SecondesA="0"+SecondesA; 
    if (MinutesA<10) MinutesA="0"+MinutesA; 
    if (HeuresA<10) HeuresA="0"+HeuresA; 
     
    document.heureDepart.departh.value=HeuresA; 
    document.heureDepart.departm.value=MinutesA; 
    document.heureDepart.departs.value=SecondesA; 
    actualiserHeure(); 
   } 
    
   function actualiserHeure() 
   { 
    var ResultatB=new Date; 
    var HeuresB=ResultatB.getHours(); 
    var MinutesB=ResultatB.getMinutes(); 
    var SecondesB=ResultatB.getSeconds(); 
     
    if (SecondesB<10) SecondesB="0"+SecondesB; 
    if (MinutesB<10) MinutesB="0"+MinutesB; 
    if (HeuresB<10) HeuresB="0"+HeuresB; 
     
    document.heureActuel.actuelh.value=HeuresB; 
    document.heureActuel.actuelm.value=MinutesB; 
    document.heureActuel.actuels.value=SecondesB; 
    calculSeconde(); 
   } 
    
   function calculSeconde() 
   { 
       var ResultatA=new Date; 
    var HeuresA=ResultatA.getHours(); 
    var MinutesA=ResultatA.getMinutes(); 
    var SecondesA=ResultatA.getSeconds(); 
    var ResultatB=new Date; 
    var HeuresB=ResultatB.getHours(); 
    var MinutesB=ResultatB.getMinutes(); 
    var SecondesB=ResultatB.getSeconds(); 


    var SecondeDepart=(HeuresA*60)+(MinutesA*60)+SecondesA; 
    var SecondeActuel=(HeuresB*60)+(MinutesB*60)+SecondesB; 
    var Differrence=SecondeActuel-SecondeDepart; 
     
    document.tempsPasser.temph.value=SecondeActuel; 
    document.tempsPasser.tempm.value=SecondeDepart; 
    document.tempsPasser.temps.value=Differrence; 
    calculPrix(); 
   } 

   function calculPrix() 
   { 
       var ResultatA=new Date; 
    var HeuresA=ResultatA.getHours(); 
    var MinutesA=ResultatA.getMinutes(); 
    var SecondesA=ResultatA.getSeconds(); 
    var ResultatB=new Date; 
    var HeuresB=ResultatB.getHours(); 
    var MinutesB=ResultatB.getMinutes(); 
    var SecondesB=ResultatB.getSeconds(); 


    var SecondeDepart=(HeuresA*60)+(MinutesA*60)+SecondesA; 
    var SecondeActuel=(HeuresB*60)+(MinutesB*60)+SecondesB; 
    var Differrence=SecondeActuel-SecondeDepart; 

       var SecondeDepart=(HeuresA*60)+(MinutesA*60)+SecondesA; 
    var SecondeActuel=(HeuresB*60)+(MinutesB*60)+SecondesB; 
    var Differrence=SecondeActuel-SecondeDepart; 

    var prix=Math.round(Differrence*prixSeconde); 
    document.facture.prixcalculer.value=prix; 
    Actualisation=setTimeout('actualiserHeure()',1000); 
   } 
    
   function rasee() 
   {  
    clearTimeout(Actualisation); 
    HeuresA=0; 
    HeuresB=0; 
    SecondesA=0; 
    SecondesB=0; 
    MinutesA=0; 
    MinutesB=0; 
    prix=0; 
    document.heureDepart.departh.value=HeuresA; 
    document.heureDepart.departm.value=MinutesA; 
    document.heureDepart.departs.value=SecondesA; 
    document.heureActuel.actuelh.value=HeuresB; 
    document.heureActuel.actuelm.value=MinutesB; 
    document.heureActuel.actuels.value=SecondesB; 
    document.facture.prixcalculer.value=prix; 
   } 
  </script> 
 </head> 
 <body> 
  <form id="heureDepart" name="heureDepart"> 
   <strong><em>Heure de départ :</em></strong><br/> 
   <input id="departh" type="button" name="departh"/> h 
   <input id="departm" type="button" name="departm"/> m 
   <input id="departs" type="button" name="departs"/> s 
  </form> 
  <form id="heureActuel" name="heureActuel"> 
   <strong><em>Heure actuel :</em></strong><br/> 
   <input id="actuelh" type="button" name="actuelh"/> h 
   <input id="actuelm" type="button" name="actuelm"/> m 
   <input id="actuels" type="button" name="actuels"/> s 
  </form> 
  <form id="tempsPasser" name="tempsPasser"> 
   <strong><em>Temps passer :</em></strong><br/> 
   <input id="temph" type="button" name="temph"/> - 
   <input id="tempm" type="button" name="tempm"/> = 
   <input id="temps" type="button" name="temps"/> 
  </form> 
  <form id="facture" name="facture"> 
   <strong><em>Prix :</em></strong><br/> 
   <input id="prixcalculer" type="button" name="prixcalculer"/> € 
   <br/><br/> 
   <input type="button" value="Start" onclick="recupHeure()"/> 
   <input type="button" value="Reset" onclick="rasee()"/><br/> 
   <input type="button" value="Stop" onclick="clearTimeout(Actualisation)"/> 
   <input type="button" value="Reprendre" onclick="actualiserHeure()"/> 
  </form> 
 </body> 
</html>


J'ai un souci avec le temps passer maintenant
il est sencer faire quoi?

Développeur VB6, VBS, VBA, VB.NET, C#, HTML, PHP, JAVASCRIPT, SQL.
0
Aneoz02 Messages postés 65 Date d'inscription jeudi 21 octobre 2010 Statut Membre Dernière intervention 28 décembre 2010 5
21 oct. 2010 à 18:33
Avant tous merci de ton aide.

Le tempsPasser m'affiche :
1°) temph = Heure Actuel en seconde
2°) tempm = Heure de départ en secondes
3°)temps = Différence en secondes

Ce qui me permait de calculer le prix par la suite.
0
Lord Zero Messages postés 459 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 15 juin 2018 115
21 oct. 2010 à 18:37
seconde actuelle - seconde départ
mais le souci c'est les secondes depart ne s'arrete pas
0
Aneoz02 Messages postés 65 Date d'inscription jeudi 21 octobre 2010 Statut Membre Dernière intervention 28 décembre 2010 5
21 oct. 2010 à 18:39
Oui. Mais est ce obligé de re-déclarer les toutes variables, car de cette façon l'heure actuel et l'heure de départ sont forcement toujours égal ???
0
Lord Zero Messages postés 459 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 15 juin 2018 115
21 oct. 2010 à 18:41
j'ai testé ton code sans les redéclaré et sa n'a pas fonctionner, test le tien et le mien
0
Aneoz02 Messages postés 65 Date d'inscription jeudi 21 octobre 2010 Statut Membre Dernière intervention 28 décembre 2010 5
21 oct. 2010 à 18:44
:( Bon ben je te remercie de ton aide mais le code source telle quel ne me convient plus du tout. Dans se cas la il ne pourra pas exécuté le calcul comme il le faut. Merci d'avoir pris le temps pour mon problème.
0