Calcul de catégorie d'age
Fermé
izumi-shingen
Messages postés
3
Date d'inscription
samedi 18 octobre 2014
Statut
Membre
Dernière intervention
20 octobre 2014
-
18 oct. 2014 à 23:25
Ysabe_l Messages postés 12456 Date d'inscription vendredi 12 avril 2013 Statut Contributeur Dernière intervention 25 avril 2024 - 20 oct. 2014 à 19:10
Ysabe_l Messages postés 12456 Date d'inscription vendredi 12 avril 2013 Statut Contributeur Dernière intervention 25 avril 2024 - 20 oct. 2014 à 19:10
A voir également:
- Calcule dage
- Calcule alimentation pc - Guide
- Calcule moyenne - Guide
- Le fichier contient le nombre de voyageurs dans 3 gares. dans la cellule b5, saisissez une formule qui calcule le total et se met à jour si on change une valeur du tableau. quel total obtenez-vous ? quelle formule avez-vous saisie ? ✓ - Forum Google Docs
- Formule qui calcule le total et se met à jour si on change une valeur du tableau. ✓ - Forum Excel
- Calcul d'un total ✓ - Forum Excel
6 réponses
Ysabe_l
Messages postés
12456
Date d'inscription
vendredi 12 avril 2013
Statut
Contributeur
Dernière intervention
25 avril 2024
274
19 oct. 2014 à 01:03
19 oct. 2014 à 01:03
Salut,
Oui en javascript (et non java qui n'a rien à voir) tu peux le faire.
Il faudrait faire un formulaire pour récupérer une date puis l'utiliser pour calculer.
Par exemple (j'ai pris les catégories d'âge de l'athlétisme, il suffit d'adapter dans le code)
Pour éviter les soucis de saisie de la date et les vérifications (que je n'ai pas fait dans l'exemple), le mieux serait d'utiliser quelque chose comme datepicker de JQueryUI : https://jqueryui.com/datepicker/
Oui en javascript (et non java qui n'a rien à voir) tu peux le faire.
Il faudrait faire un formulaire pour récupérer une date puis l'utiliser pour calculer.
Par exemple (j'ai pris les catégories d'âge de l'athlétisme, il suffit d'adapter dans le code)
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Catégorie sportive</title> <meta name="description" content="" /> </head> <body> <h1>Dans quelle catégorie êtes-vous ?</h1> <p>Entrez votre date de naissance au format JJ/MM/AAAA</p> <input type="text" id="date" /> <!-- le champ pour entrer la date de naissance --> <input type="button" value="calculer" id="valider" onClick="calculs();" /><!-- bouton de validation qui lance le script --> <div id="reponse" style="visibility:hidden;"> <!-- div masquée pour le résultat --> <p>Vous êtes dans la catégorie : <span id="categorie"></span>.</p> </div> <!-- le script --> <script language = "javascript"> function calculs() { // on récupère l'année en cours date_actuelle = new Date(); var annee_en_cours = date_actuelle.getFullYear(); // on récupère la date entrée var date_naissance = document.getElementById("date").value; // on vérifie que le champ n'est pas vide if(date_naissance == "") { alert("vous devez entrer une date pour effectuer le calcul"); } // si ce n'est pas vide on calcule la catégorie else { // on isole l'année de la date de naissance var annee_naissance = date_naissance.substr(6,4) // on calcule la différence entre l'année en cours et l'année de naissance var age = annee_en_cours-annee_naissance; // on en déduit la catégorie sportive var catego = "" if (age <= 9) { catego = "Poussin"; } if (age > 9 && age <= 11) { catego = "Pupille"; } if (age > 11 && age <= 13) { catego = "Benjamin"; } if (age > 13 && age <= 15) { catego = "Minime"; } if (age > 15 && age <= 17) { catego = "Cadet"; } if (age > 17 && age <= 19) { catego = "Junior"; } if (age > 19 && age <= 22) { catego = "Espoir"; } if (age > 22 && age <= 39) { catego = "Sénior"; } if (age > 39 && age <= 49) { catego = "Vétéran 1"; } if (age > 49 && age <= 59) { catego = "Vétéran 2"; } if (age > 59 && age <= 69) { catego = "Vétéran 3"; } if (age > 69) { catego = "Vétéran 4"; } // on les affiche dans les bonnes div document.getElementById('categorie').innerHTML = catego; // on affiche la div de réponse document.getElementById('reponse').style.visibility="visible"; } } </script> </body> </html>
Pour éviter les soucis de saisie de la date et les vérifications (que je n'ai pas fait dans l'exemple), le mieux serait d'utiliser quelque chose comme datepicker de JQueryUI : https://jqueryui.com/datepicker/
izumi-shingen
Messages postés
3
Date d'inscription
samedi 18 octobre 2014
Statut
Membre
Dernière intervention
20 octobre 2014
19 oct. 2014 à 19:04
19 oct. 2014 à 19:04
Bonjour et un grand merci.
Dans mon cas, pour le judo les catégories sont les suivantes : (la difficulté, c'est que ça change au 1er janvier et non a la date d'anniversaire, c'est pas seulement par rapport à l'âge)
Baby-Judo : né(e) en 2008 / 2009 jusqu'au 31/12/2014
né(e) en 2009 / 2010 à partir du 01/01/2015
Mini-Poussin(e) : né(e) en 2006 / 2007 jusqu'au 31/12/2014
né(e) en 2007 / 2008 à partir du 01/01/2015
Poussin(e) : né(e) en 2004 / 2005 jusqu'au 31/12/2014
né(e) en 2005 / 2006 à partir du 01/01/2015
Benjamin(e) : né(e) en 2002 / 2003 jusqu'au 31/12/2014
né(e) en 2003 / 2004 à partir du 01/01/2015
Minime : né(e) en 2000 / 2001 jusqu'au 31/12/2014
né(e) en 2001 / 2002 à partir du 01/01/2015
Cadet(te) : né(e) en 1997 / 1998 / 1999 jusqu'au 31/12/2014
né(e) en 1998 / 1999 / 2000 à partir du 01/01/2015
Junior : né(e) en 1994 / 1995 / 1996 jusqu'au 31/12/2014
né(e) en 1995 / 1996 / 1997 à partir du 01/01/2015
Sénior : né(e) en 1993 et avant jusqu'au 31/12/2014
né(e) en 1994 et avant à partir du 01/01/2015
J'espère ne pas être trop exigeant....
Encore merci beaucoup.
Dans mon cas, pour le judo les catégories sont les suivantes : (la difficulté, c'est que ça change au 1er janvier et non a la date d'anniversaire, c'est pas seulement par rapport à l'âge)
Baby-Judo : né(e) en 2008 / 2009 jusqu'au 31/12/2014
né(e) en 2009 / 2010 à partir du 01/01/2015
Mini-Poussin(e) : né(e) en 2006 / 2007 jusqu'au 31/12/2014
né(e) en 2007 / 2008 à partir du 01/01/2015
Poussin(e) : né(e) en 2004 / 2005 jusqu'au 31/12/2014
né(e) en 2005 / 2006 à partir du 01/01/2015
Benjamin(e) : né(e) en 2002 / 2003 jusqu'au 31/12/2014
né(e) en 2003 / 2004 à partir du 01/01/2015
Minime : né(e) en 2000 / 2001 jusqu'au 31/12/2014
né(e) en 2001 / 2002 à partir du 01/01/2015
Cadet(te) : né(e) en 1997 / 1998 / 1999 jusqu'au 31/12/2014
né(e) en 1998 / 1999 / 2000 à partir du 01/01/2015
Junior : né(e) en 1994 / 1995 / 1996 jusqu'au 31/12/2014
né(e) en 1995 / 1996 / 1997 à partir du 01/01/2015
Sénior : né(e) en 1993 et avant jusqu'au 31/12/2014
né(e) en 1994 et avant à partir du 01/01/2015
J'espère ne pas être trop exigeant....
Encore merci beaucoup.
Ysabe_l
Messages postés
12456
Date d'inscription
vendredi 12 avril 2013
Statut
Contributeur
Dernière intervention
25 avril 2024
274
19 oct. 2014 à 21:43
19 oct. 2014 à 21:43
Bonjour,
C'est marrant je croyais que les catégories baby et mini-poussin étaient une "invention" du club de judo de ma fille, je ne savais pas qu'elles étaient officielles.
Là dans ce que j'ai fait on rentre la date de naissance entière mais seule l'année est prise en compte pour le calcul donc normalement c'est bon.
J'ai pris "var age = annee_en_cours-annee_naissance;"
donc un enfant né en décembre 2007
au premier janvier 2015 il aura tout juste 7 ans (et un mois)
mais pour le script il aura 8 ans (2015 - 2007 = 8)
donc il sera dans la bonne catégorie.
Je vous le refais avec les bons noms et âges de catégories pour le judo.
C'est marrant je croyais que les catégories baby et mini-poussin étaient une "invention" du club de judo de ma fille, je ne savais pas qu'elles étaient officielles.
Là dans ce que j'ai fait on rentre la date de naissance entière mais seule l'année est prise en compte pour le calcul donc normalement c'est bon.
J'ai pris "var age = annee_en_cours-annee_naissance;"
donc un enfant né en décembre 2007
au premier janvier 2015 il aura tout juste 7 ans (et un mois)
mais pour le script il aura 8 ans (2015 - 2007 = 8)
donc il sera dans la bonne catégorie.
Je vous le refais avec les bons noms et âges de catégories pour le judo.
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Catégorie sportive</title> <meta name="description" content="" /> </head> <body> <h1>Dans quelle catégorie êtes-vous ?</h1> <p>Entrez votre date de naissance au format JJ/MM/AAAA</p> <input type="text" id="date" /> <!-- le champ pour entrer la date de naissance --> <input type="button" value="calculer" id="valider" onClick="calculs();" /><!-- bouton de validation qui lance le script --> <div id="reponse" style="visibility:hidden;"> <!-- div masquée pour le résultat --> <p>Vous êtes dans la catégorie : <span id="categorie"></span>.</p> </div> <!-- le script --> <script language = "javascript"> function calculs() { // on récupère l'année en cours date_actuelle = new Date(); var annee_en_cours = date_actuelle.getFullYear(); // on récupère la date entrée var date_naissance = document.getElementById("date").value; // on vérifie que le champ n'est pas vide if(date_naissance == "") { alert("vous devez entrer une date pour effectuer le calcul"); } // si ce n'est pas vide on calcule la catégorie else { // on isole l'année de la date de naissance var annee_naissance = date_naissance.substr(6,4) // on calcule la différence entre l'année en cours et l'année de naissance var age = annee_en_cours-annee_naissance; // on en déduit la catégorie sportive var catego = "" if (age < 5) { catego = "Trop jeune pour faire du judo"; } if (age >= 5 && age <= 6) { catego = "Baby-Judo"; } if (age > 6 && age <= 8) { catego = "Mini-Poussin(e)"; } if (age > 8 && age <= 10) { catego = "Poussin(e)"; } if (age > 10 && age <= 12) { catego = "Benjamin(e)"; } if (age > 12 && age <= 14) { catego = "Minime"; } if (age > 14 && age <= 17) { catego = "Cadet(te)"; } if (age > 17 && age <= 20) { catego = "Junior"; } if (age > 21) { catego = "Sénior"; } // on affiche le nom de la catégorie document.getElementById('categorie').innerHTML = catego; // on affiche la div de réponse document.getElementById('reponse').style.visibility="visible"; } } </script> </body> </html>
izumi-shingen
Messages postés
3
Date d'inscription
samedi 18 octobre 2014
Statut
Membre
Dernière intervention
20 octobre 2014
20 oct. 2014 à 02:38
20 oct. 2014 à 02:38
Salut et merci encore, c'est trop génial! Ca marche du tonnerre.
Oui pour le judo ce sont les catégories officielles, dans certains clubs ils acceptent les enfants dès 3 ans mais nous on commence à 4, c'est bien assez tôt pour eux. En tout cas je souhaite à ta fille de se plaire dans ce sport qui est le mien.
Dernière chose, j'ai essayé de mettre une sélection de date avec un calendrier interactif (<input type="date" id="date" /> au lieu de <input type="text" id="date" />, je peux effectivement sélectionner la date dans un mini-calendrier mais le résultat affiché est un point "." Mais cela c'est juste un plus si c'est pas possible, ça me convient très bien.
Je te remercie une fois de plus et en japonais pour la circonstance :
domo arigato gozai mashita
Oui pour le judo ce sont les catégories officielles, dans certains clubs ils acceptent les enfants dès 3 ans mais nous on commence à 4, c'est bien assez tôt pour eux. En tout cas je souhaite à ta fille de se plaire dans ce sport qui est le mien.
Dernière chose, j'ai essayé de mettre une sélection de date avec un calendrier interactif (<input type="date" id="date" /> au lieu de <input type="text" id="date" />, je peux effectivement sélectionner la date dans un mini-calendrier mais le résultat affiché est un point "." Mais cela c'est juste un plus si c'est pas possible, ça me convient très bien.
Je te remercie une fois de plus et en japonais pour la circonstance :
domo arigato gozai mashita
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Ysabe_l
Messages postés
12456
Date d'inscription
vendredi 12 avril 2013
Statut
Contributeur
Dernière intervention
25 avril 2024
274
20 oct. 2014 à 16:03
20 oct. 2014 à 16:03
Bonjour,
En effet, j'essaye d'éviter les input spécifiques à HTML5 qui ne sont pas reconnus par tous les navigateurs. Selon moi il vaut mieux pour le moment mettre 3 listes déroulantes avec respectivement les jours les mois et les années.
Par contre j'ignore comment le input type="date" récupère la date, donc pour le moment je n'ai pas de réponse, mais je regarderai quand même par curiosité.
A mon avis le principal soucis c'est que les navigateurs qui gèrent ce type et ceux qui ne le gèrent pas ne vont pas récupérer l'information entrée sous le même format (les anciens auront un input de type texte comme dans ma version) et donc il va falloir prévoir les deux cas pour le calcul en fonction du format récupéré. Je sais pas si ce que je dis là est très clair.
Je vais regarder ça quand j'aurais du temps.
En effet, j'essaye d'éviter les input spécifiques à HTML5 qui ne sont pas reconnus par tous les navigateurs. Selon moi il vaut mieux pour le moment mettre 3 listes déroulantes avec respectivement les jours les mois et les années.
Par contre j'ignore comment le input type="date" récupère la date, donc pour le moment je n'ai pas de réponse, mais je regarderai quand même par curiosité.
A mon avis le principal soucis c'est que les navigateurs qui gèrent ce type et ceux qui ne le gèrent pas ne vont pas récupérer l'information entrée sous le même format (les anciens auront un input de type texte comme dans ma version) et donc il va falloir prévoir les deux cas pour le calcul en fonction du format récupéré. Je sais pas si ce que je dis là est très clair.
Je vais regarder ça quand j'aurais du temps.
Ysabe_l
Messages postés
12456
Date d'inscription
vendredi 12 avril 2013
Statut
Contributeur
Dernière intervention
25 avril 2024
274
20 oct. 2014 à 19:10
20 oct. 2014 à 19:10
Et voilà ce que ça donne avec le input de type date et sa prise en charge pour les navigateurs qui ne le gèrent pas et proposeront le type text.
Au passage j'aurais appris que ce type date retourne la date au format AAAA-MM-JJ
Au passage j'aurais appris que ce type date retourne la date au format AAAA-MM-JJ
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Catégorie sportive</title> <meta name="description" content="" /> </head> <body> <h1>Dans quelle catégorie êtes-vous ?</h1> <p>Entrez votre date de naissance au format JJ/MM/AAAA</p> <input type="date" id="date" /> <!-- le champ pour entrer la date de naissance --> <input type="button" value="calculer" id="valider" onClick="calculs();" /><!-- bouton de validation qui lance le script --> <div id="reponse" style="visibility:hidden;"> <!-- div masquée pour le résultat --> <p>Vous êtes dans la catégorie : <span id="categorie"></span>.</p> </div> <!-- le script --> <script language = "javascript"> function calculs() { // on récupère l'année en cours date_actuelle = new Date(); var annee_en_cours = date_actuelle.getFullYear(); // on récupère la date entrée var date_naissance = document.getElementById("date").value; // on vérifie que le champ n'est pas vide if(date_naissance == "") { alert("vous devez entrer une date pour effectuer le calcul"); } // si ce n'est pas vide on calcule la catégorie else { // on vérifie si la date est entrée au format text ou date var regEx1 = /[0-9]{2}\/[0-9]{2}\/[0-9]{4}/; // format text var regEx2 = /[0-9]{4}-[0-9]{2}-[0-9]{2}/; // format date // on isole l'année de naissance var annee_naissance = ""; if(regEx1.test(date_naissance)) { annee_naissance = date_naissance.substr(6,4) } if(regEx2.test(date_naissance)) { annee_naissance = date_naissance.substr(0,4) } // on calcule la différence entre l'année en cours et l'année de naissance var age = annee_en_cours-annee_naissance; // on en déduit la catégorie sportive var catego = "" if (age < 5) { catego = "Trop jeune pour faire du judo"; } if (age >= 5 && age <= 6) { catego = "Baby-Judo"; } if (age > 6 && age <= 8) { catego = "Mini-Poussin(e)"; } if (age > 8 && age <= 10) { catego = "Poussin(e)"; } if (age > 10 && age <= 12) { catego = "Benjamin(e)"; } if (age > 12 && age <= 14) { catego = "Minime"; } if (age > 14 && age <= 17) { catego = "Cadet(te)"; } if (age > 17 && age <= 20) { catego = "Junior"; } if (age > 21) { catego = "Sénior"; } // on affiche le nom de la catégorie document.getElementById('categorie').innerHTML = catego; // on affiche la div de réponse document.getElementById('reponse').style.visibility="visible"; } } </script> </body> </html>