A voir également:
- Calculer la date de la prochaine formation
- Comment calculer la moyenne sur excel - Guide
- Formation chatgpt gratuite - Guide
- Rolland souhaite calculer le montant total des ventes de son magasin. le fichier contient, pour chaque produit, la quantité vendue et le prix unitaire. calculez le montant total des ventes. ✓ - Forum Excel
- Formate de taxe connexion ✓ - Forum Matériel & Système
- Virginie organise un rallye avec 30 équipes. elle veut créer un code pour désigner chaque équipe. elle a commencé à la main, mais elle voudrait le faire calculer à l'aide d'une formule. proposez une formule comportant une seule fonction et à recopier vers le bas dans la colonne a du fichier à télécharger. quelle formule sera en a9 ? ✓ - Forum Programmation
13 réponses
kij_82
Messages postés
4088
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
21 mars 2008 à 11:45
21 mars 2008 à 11:45
Bonjour,
Pourquoi pas mais :
- peux-tu donner les contraites / règles de calcul
- dans quel language faut-il que ce soit codé ? javascript, php, autre ?
Pourquoi pas mais :
- peux-tu donner les contraites / règles de calcul
- dans quel language faut-il que ce soit codé ? javascript, php, autre ?
kij_82
Messages postés
4088
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
21 mars 2008 à 17:13
21 mars 2008 à 17:13
Ok dans ce cas là tu peux le faire en javascript en t'inspirant du cours ici présent :
https://www.commentcamarche.net/contents/571-javascript-l-objet-date
Bon codage ;) (tu as tout ce qu'il faut dans cette page normalement)
https://www.commentcamarche.net/contents/571-javascript-l-objet-date
Bon codage ;) (tu as tout ce qu'il faut dans cette page normalement)
kij_82
Messages postés
4088
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
3 avril 2008 à 12:22
3 avril 2008 à 12:22
Bon..
Tu créé un objet date initialisé à la date que tu veux. Puis tu set (via la méthode setDay, setMonth, setYear) ta nouvelle date en incrémentant la donnée voulue.
C'est quand même pas compliqué de faire un petit effort non ?
Tu créé un objet date initialisé à la date que tu veux. Puis tu set (via la méthode setDay, setMonth, setYear) ta nouvelle date en incrémentant la donnée voulue.
<script language="javascript"> var maDate = new Date(); document.write("<BR>Date courante : "+maDate.getFullYear()+"-"+maDate.getMonth()+"-"+maDate.getDate()); var maDuree = 20; var nbMoisDsAnnee = 12; var nouveau_mois = (maDate.getMonth() + maDuree) % nbMoisDsAnnee; maDate.setMonth(nouveau_mois); var nouvelle_annee = (maDate.getFullYear() + (maDuree / nbMoisDsAnnee) ); maDate.setFullYear(nouvelle_annee); document.write("<BR>Nouvelle date : "+maDate.getFullYear()+"-"+maDate.getMonth()+"-"+maDate.getDate()); </script>
C'est quand même pas compliqué de faire un petit effort non ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ok merci beaucoup alors, j'ai cherché quelque chose de compliqué alors que ça ne l'était pas tant...
merci encore
merci encore
maintenant je cherche a remplacer maDate.getFullYear(), maDate.getMonth() par les données de mon formulaire, mais je ne m'en sors pas... voici mon formulaire :
et voici ta fonction que j'ai modifié, mais comme tu peux le voir je ne parle plus d'objet date, ce qui doit poser problème je pense... mais je n'arrive pas a voir comment y remédier...
la fonction :
<form method="post" name="form1" id="form1"> <div align="center">';Date de votre formation: <strong> <select name="regleMois" size="1"> <option value="1"> Janvier </option> <option value="2"> Février </option> <option value="3"> Mars </option> <option value="4"> Avril </option> <option value="5"> Mai </option> <option value="6"> Juin </option> <option value="7"> Juillet </option> <option value="8"> Aout </option> <option value="9"> Septembre </option> <option value="10"> Octobre </option> <option value="11"> Novembre </option> <option value="12"> Décembre </option> </select> <input type="text" size="4" name="regleAnnee" value="2007"> </strong></div> <div align="center"><center><p> <input type="reset" name="B2" value="Effacer"> <input type="button" name="B1" value="Valider" onclick="date()"> </p> </center></div> <center><div id="console" style="position: absolute;left:40%; width: 400px; height: 250px; color: black;"></div></center> </form> </div>
et voici ta fonction que j'ai modifié, mais comme tu peux le voir je ne parle plus d'objet date, ce qui doit poser problème je pense... mais je n'arrive pas a voir comment y remédier...
la fonction :
function date() { var mois = document.form1.regleMois.value; var annee = document.form1.regleAnnee.value; var console = document.getElementById("console"); var maDuree = 24; var nbMoisDsAnnee = 12; var nouveau_mois = (mois + maDuree) % nbMoisDsAnnee; if(nouveau_mois = 0){ nouveau_mois = 12;} var nouvelle_annee = annee + (maDuree/nbMoisDsAnnee); console.innerHTML = "<BR><BR>Date de la formation : "+annee+"-"+mois+"<br><br>Nouvelle date : "+nouvelle_annee+"-"+nouveau_mois; }
kij_82
Messages postés
4088
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
3 avril 2008 à 16:42
3 avril 2008 à 16:42
Pour sélectionner la valeur d'une liste déroulante ce n'est pas comme pour un champ de type 'input'.
Voilà comment faire :
Il ne te reste plus qu'à compléter ton script comme il faut.
Voilà comment faire :
var listeMois = document.form1.regleMois.options; var mois = listeMois[listeMois.selectedIndex].value;
Il ne te reste plus qu'à compléter ton script comme il faut.
une dernière question...
maintenant, dans mon formulaire, j'ai rajouté une liste déroulante correspondant a différentes formations...
et a chaque formation on trouve une duree différente. MA boucle ne fonctionne pas, et je n'arrive pas a comprendre pourquoi, car en faisant une "alert" je trouve les bonnes valeurs de selectedIndex...
le formulaire :
j'ai donc rajouté le select value=regleForm
et mon script :
il ne fonctionne pas au niveau de la condition... une alert que j'ai pu faire m'a montré qu'après ces conditions, maDuree est toujours égale a 39, même si je change la formation...
Merci encore tu m'aides vraiment beaucoup...
maintenant, dans mon formulaire, j'ai rajouté une liste déroulante correspondant a différentes formations...
et a chaque formation on trouve une duree différente. MA boucle ne fonctionne pas, et je n'arrive pas a comprendre pourquoi, car en faisant une "alert" je trouve les bonnes valeurs de selectedIndex...
le formulaire :
<div id="titre_calcul" align="center"><h2 align="center">Calculez la durée de validité de votre formation</h2></div> <div align="left"> <form method="post" name="form1" id="form1"> <div align="center"> Formation : <select name="regleForm" id="formation" size="1"> <option>Select</option> <option value="1"> SST </option> <option value="2"> SSIAP </option> <option value="3"> CHSCT </option> </select><br/><br/> Date de votre formation: <strong> <select name="regleMois" size="1"> <option value="1"> Janvier </option> <option value="2"> Février </option> <option value="3"> Mars </option> <option value="4"> Avril </option> <option value="5"> Mai </option> <option value="6"> Juin </option> <option value="7"> Juillet </option> <option value="8"> Aout </option> <option value="9"> Septembre </option> <option value="10"> Octobre </option> <option value="11"> Novembre </option> <option value="12"> Décembre </option> </select> <input type="text" size="4" name="regleAnnee" value="2008"> </strong></div> <div align="center"><center><p> <input type="reset" name="B2" value="Effacer" onclick="effacer()"> <input type="button" name="B1" value="Valider" onclick="date()"> </p> </center></div> <center><div id="console" style="position: absolute;left:40%; width: 400px; height: 250px; color: black;"></div></center> </form> </div>
j'ai donc rajouté le select value=regleForm
et mon script :
function date() { var listeMois = document.form1.regleMois.options; var mois = listeMois[listeMois.selectedIndex].value; var annee = document.form1.regleAnnee.value; var maDuree = 0; var maDate = new Date(annee, mois); var nbMoisDsAnnee = 12; console = document.getElementById("console"); if(document.form1.formation.options[document.form1.formation.selectedIndex].value = 1)var maDuree = 39; else if(document.form1.formation.options[document.form1.formation.selectedIndex].value = 2)var maDuree = 12; else var maDuree = 1; alert(maDuree); var nouveau_mois = (maDate.getMonth() + maDuree) % nbMoisDsAnnee; if((maDate.getMonth() + maDuree) % nbMoisDsAnnee == 0) nouveau_mois = 12; var nouvelle_annee = maDate.getFullYear() + Math.ceil(maDuree/nbMoisDsAnnee); console.innerHTML = "<br><BR>Date de la formation : "+annee+"-"+mois+"<br><br>Nouvelle date:"+nouvelle_annee+"-"+nouveau_mois; } function effacer(){ document.getElementById('console').innerHTML=""; }
il ne fonctionne pas au niveau de la condition... une alert que j'ai pu faire m'a montré qu'après ces conditions, maDuree est toujours égale a 39, même si je change la formation...
Merci encore tu m'aides vraiment beaucoup...
kij_82
Messages postés
4088
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
4 avril 2008 à 11:49
4 avril 2008 à 11:49
Dans ce bout de cote, plusieurs erreurs :
Puisque tu as déjà déclarer la variable 'maDuree' plus haut, il est inutile de mettre : 'var maDuree = 28;"
Il faut simplement mettre : maDuree = 28;
Sinon, n'oubli pas que quand tu veux faire un test, il faut faire : if( toto == tata ) et non pas if ( toto = tata )
Un seul '=' signifie une attribution de valeur, ce qui est toujours VRAI, donc ton test est validé.
Alors que '==' signifie un test d'égalité sur la valeur, ce qui peut etre VRAI ou FAUX.
if(document.form1.formation.options[document.form1.formation.selectedIndex].value = 1)var maDuree = 39; else if(document.form1.formation.options[document.form1.formation.selectedIndex].value = 2)var maDuree = 12;
Puisque tu as déjà déclarer la variable 'maDuree' plus haut, il est inutile de mettre : 'var maDuree = 28;"
Il faut simplement mettre : maDuree = 28;
Sinon, n'oubli pas que quand tu veux faire un test, il faut faire : if( toto == tata ) et non pas if ( toto = tata )
Un seul '=' signifie une attribution de valeur, ce qui est toujours VRAI, donc ton test est validé.
Alors que '==' signifie un test d'égalité sur la valeur, ce qui peut etre VRAI ou FAUX.
kij_82
Messages postés
4088
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
4 avril 2008 à 13:27
4 avril 2008 à 13:27
Pour mettre la discussion en "résolu" il faut cocher le tag "résolu" situé tout en haut de la discussion.
kij_82
Messages postés
4088
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
4 avril 2008 à 14:36
4 avril 2008 à 14:36
Tout en haut de la discussion si tu fais attention tu verra qu'il y a un "statut" pour la discussion. Le statut de la discussion en cours est "non résolu" et tu peux le faire passer en "résolu".
21 mars 2008 à 14:00
alors euh php ou javascript je pense, je n'ai pas de contrainte au niveau du langage, c'est moi qui choisi, donc après je peux opter sur la manière la plus simple et pratique pour réaliser la chose...
au niveau des règles de calcul : rien de spé je crois, je sais pas encore exactement, mais pour l'exemple je dirais que la formation n'est plus a jour au bout de 2 ans et 5 mois. Donc calculer la date 2 ans et 5 mois plus tard à la date qui est entrée dans le formulaire...
merci !