Calcul de catégorie d'age
izumi-shingen
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
Ysabe_l Messages postés 12714 Date d'inscription Statut Contributeur Dernière intervention -
Ysabe_l Messages postés 12714 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour à toutes et à tous,
alors voilà, j'ai une feuille excel qui calcule une catégorie sportive selon la date entrée qui fonctionne sous excel et j'aimerais transformer cette feuille en code html ou java à copier/coller sur le site du club pour que les licenciés puisse calculer en ligne eux-memes leur categorie. Est-ce possible? Je suis débutant et ne connais pas du tout la programmation. Un grand merci d'avance.
alors voilà, j'ai une feuille excel qui calcule une catégorie sportive selon la date entrée qui fonctionne sous excel et j'aimerais transformer cette feuille en code html ou java à copier/coller sur le site du club pour que les licenciés puisse calculer en ligne eux-memes leur categorie. Est-ce possible? Je suis débutant et ne connais pas du tout la programmation. Un grand merci d'avance.
A voir également:
- Calcule dage
- Comment on calcule une moyenne - Guide
- Excel champ calculé avec condition ✓ - Forum Excel
- Formule qui calcule le total et se met à jour si on change une valeur du tableau. ✓ - Forum Excel
- Calcule grossesse - Télécharger - Vie quotidienne
- TCD - champs calculé en fonction d'un champ groupé - Forum Excel
6 réponses
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/
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.
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>
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
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.
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>