IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Calculs et temps


Sujet :

JavaScript

  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Septembre 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1
    Par défaut Calculs et temps
    Bonjour à tous,
    Je ne suis pas développeur et je n'ai donc aucune prétention dans ce domaine que je connais avec mon regard de "WebDesigner".
    Les années d'expériences et les collaborations aidants, j'arrive à "comprendre" ce que réalise un code JS.
    Cependant, même si je parviens parfois à modifier du code existant pour obtenir ce que je souhaite, je n'ai aucune compétences pour le faire.
    Mon problème aujourd'hui, demeure dans une page que je souhaite réaliser…
    Je souhaite créer une page qui calculerai automatiquement la durée d'exposition d'une photographie quand on utilise un ou des filtres à densité neutre (ND4/8/1000/…).
    Fondamentalement, le calcul est très simple :
    Temps d'exposition * type du filtre = nouveau temps d'exposition

    Sauf, qu'il est possible de superposer plusieurs filtres, ce qui peu donner :
    Temps d'exposition * (type du filtre * "x" type de filtres) = nouveau temps d'exposition

    A partir d'un JS existant je suis parvenu à bidouiller un machin, mais qui évidement ne rends pas ce que je souhaite.
    D'une part, j'aimerai créer à la volée un champs "type de filtre" si la personne en veux plus d'un… puis faire en sorte que le résultat (donnée en secondes) soit convertit en JJ:mm:ss si nécéssaire…

    Voici ce que donne pour le moment mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    <script>
    					function send() 
    					{
    						if(isNaN(parseFloat(document.form1.valeur_1.value) * parseFloat(document.form1.valeur_2.value) * parseFloat(document.form1.valeur_3.value)))
    						{
    							document.getElementById("my_id").innerHTML = "--";
    						}
    						else
    						{
    							document.getElementById("my_id").innerHTML = (parseFloat(document.form1.valeur_1.value) * parseFloat(document.form1.valeur_2.value) * parseFloat(document.form1.valeur_3.value));
     
    						}
    					}
    				</script>
     
    				<form id="form1" name="form1" method="post" action="">
     
    						<label for="valeur_1">Durée d'exposition initiale</label>
    						<select name="valeur_1" id="valeur_1" onchange="send()">
    								<option value="0">None</option>
    								<option value="0.000125">1/8000</option>
    								<option value="0.00025">1/4000</option>
    								<option value="0.0003125">1/3200</option>
    								<option value="0.0004">1/2500</option>
    								<option value="0.0005">1/2000</option>
    								<option value="0.000625">1/1600</option>
    								<option value="0.0008">1/1250</option>
    								<option value="0.001">1/1000</option>
    								<option value="0.00125">1/800</option>
    								<option value="0.0015625">1/640</option>
    								<option value="0.002">1/500</option>
    								<option value="0.0025">1/400</option>
    								<option value="0.003125">1/320</option>
    								<option value="0.004">1/250</option>
    								<option value="0.005">1/200</option>
    								<option value="0.00625">1/160</option>
    								<option value="0.008">1/125</option>
    								<option value="0.01">1/100</option>
    								<option value="0.02">1/50</option>
    								<option value="0.016666667">1/60</option>
    								<option value="0.02">1/50</option>
    								<option value="0.025">1/40</option>
    								<option value="0.033333333">1/30</option>
    								<option value="0.04">1/25</option>
    								<option value="0.066666667">1/15</option>
    								<option value="0.076923077">1/13</option>
    								<option value="0.1">1/10</option>
    								<option value="0.125">1/8</option>
    								<option value="0.16666667">1/6</option>
    								<option value="0.2">1/5</option>
    								<option value="0.25">1/4</option>
    								<option value="0.33333333">1/3</option>
    								<option value="0.4">0,4"</option>
    								<option value="0.5">0,5"</option>
    								<option value="0.6">0,6"</option>
    								<option value="0.8">0,8"</option>
    								<option value="1">1"</option>
    								<option value="1.3">1,3"</option>
    								<option value="1.6">1,6"</option>
    								<option value="2">2"</option>
    								<option value="2.5">2,5"</option>
    								<option value="3.2">3,2"</option>
    								<option value="4">4"</option>
    								<option value="5">5"</option>
    								<option value="6">6"</option>
    								<option value="8">8"</option>
    								<option value="10">10"</option>
    								<option value="13">13"</option>
    								<option value="15">15"</option>
    								<option value="20">20"</option>
    								<option value="25">25"</option>
    								<option value="30">30"</option>
    						</select>					
    						<label for="valeur_2">Type de filtre ND</label>
    						<select name="valeur_2" id="valeur_2" onchange="send()">
    								<option value="0">None</option>
    								<option value="2">ND2 (0,3) f-stop 1</option>
    								<option value="4">ND4 (0,6) f-stop 2</option>
    								<option value="8">ND8 (0,9) f-stop 3</option>
    								<option value="16">ND16 (1,2) f-stop 4</option>
    								<option value="32">ND32 (1,5) f-stop 5</option>
    								<option value="64">ND64 (1,8) f-stop 6</option>
    								<option value="128">ND128 (2,1) f-stop 7</option>
    								<option value="256">ND256 (2,4) f-stop 8</option>
    								<option value="512">ND512 (2,7) f-stop 9</option>
    								<option value="1024">ND1024 (3,0) f-stop 10</option>
    								<option value="2048">ND2048 (3,3) f-stop 11</option>
    								<option value="4096">ND4096 (3,6) f-stop 12</option>
    								<option value="8192">ND8192 (3,9) f-stop 13</option>
    						</select>
    						<label for="valeur_3">Type de filtre ND</label>
    						<select name="valeur_3" id="valeur_3" onchange="send()">
    								<option value="0">None</option>
    								<option value="2">ND2 (0,3) f-stop 1</option>
    								<option value="4">ND4 (0,6) f-stop 2</option>
    								<option value="8">ND8 (0,9) f-stop 3</option>
    								<option value="16">ND16 (1,2) f-stop 4</option>
    								<option value="32">ND32 (1,5) f-stop 5</option>
    								<option value="64">ND64 (1,8) f-stop 6</option>
    								<option value="128">ND128 (2,1) f-stop 7</option>
    								<option value="256">ND256 (2,4) f-stop 8</option>
    								<option value="512">ND512 (2,7) f-stop 9</option>
    								<option value="1024">ND1024 (3,0) f-stop 10</option>
    								<option value="2048">ND2048 (3,3) f-stop 11</option>
    								<option value="4096">ND4096 (3,6) f-stop 12</option>
    								<option value="8192">ND8192 (3,9) f-stop 13</option>
    						</select>						
    					<p id="my_id"></p>
    Merci de votre aide et de vos suggestions !

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    Par défaut
    Bonsoir,
    je commencerais par dire qu'il est important de mettre des noms de variable, name et autre qui veulent dire quelque chose, c'est plus facile pour s'y retrouver.

    Dans ta fonction récupères chaque valeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function calculTemps(){
      var duree  = parseFloat( document.form1.duree_expo.value);
      var type   = parseFloat( document.form1.type_filtre.value);
      var nombre = parseFloat( document.form1.nombre_filtre.value);
      var result = duree * type * nombre;
      // la suite ICI
    }

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    je continuerai en recommandant une syntaxe plus stricte :

    si les élements de form ont un name
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.forms['nomfrom'].elements['nomelement'].value
    voire également
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.forms['nomfrom'].elements['nomelement'][index].value
    ou index représente l'indice de l'element dans la collection si plusieurs éléments portent le même name.

    Sinon en passant par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('idelt').value
    lorsque les élements ont un id .
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

Discussions similaires

  1. comment calculer le temps d'execution
    Par passion_info dans le forum C++Builder
    Réponses: 1
    Dernier message: 09/06/2005, 09h13
  2. Calculer le temps passé
    Par Joeleclems dans le forum MFC
    Réponses: 4
    Dernier message: 29/04/2005, 09h40
  3. calculer le Temp écoulé
    Par ada_b dans le forum SQL
    Réponses: 1
    Dernier message: 30/11/2004, 09h44
  4. [MFC] : CTime ? Calcul de temps d'éxécution
    Par jonzuzu dans le forum MFC
    Réponses: 10
    Dernier message: 25/05/2004, 14h22
  5. Réponses: 8
    Dernier message: 18/09/2002, 03h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo