Calculer la date de la prochaine formation
Luc4ever
-
Luc4ever -
Luc4ever -
Bonjour,
Alors une entreprise m'a demandé de faire son site web, c'est une entreprise de formations.
Le type m'a demandé de créer un formulaire où l'utilisateur entre la date à laquelle il a passé
une formation. A partir de ça, il faudrait pouvoir calculer la date de la prochaine formation à faire
où une mise à jour de la formation qu'il a déja)...
Si quelqu'un pouvait m'aider pour un programme calculant cette date.
MErci d'avance !
Alors une entreprise m'a demandé de faire son site web, c'est une entreprise de formations.
Le type m'a demandé de créer un formulaire où l'utilisateur entre la date à laquelle il a passé
une formation. A partir de ça, il faudrait pouvoir calculer la date de la prochaine formation à faire
où une mise à jour de la formation qu'il a déja)...
Si quelqu'un pouvait m'aider pour un programme calculant cette date.
MErci d'avance !
A voir également:
- Calculer la date de la prochaine formation
- Comment calculer la moyenne sur excel - Guide
- Comment prolonger la date de validité d'une smartbox ? ✓ - Forum Consommation & Internet
- Publipostage date inversée ✓ - Forum Word
- Whatsapp la date est incorrecte ✓ - Forum Windows Phone
- Airpods 3 date de sortie - Guide
13 réponses
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 ?
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)
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;
}
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...
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.
Pour mettre la discussion en "résolu" il faut cocher le tag "résolu" situé tout en haut de la discussion.
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 !