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 :

Calcul d'une année de naissance non civile


Sujet :

JavaScript

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Décembre 2012
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Calcul d'une année de naissance non civile
    Bonjour à tous,
    je fais appel à l'équipe car je me casse la tête sur le calcul suivant:
    pour mon club de sport, de dois calculer les années de naissance pour chaque catégorie afin de les afficher sur notre site. Le problème est que notre fédération tient compte de l'âge civil pour toute la saison en cours.
    Je m'explique avec un exemple: les années de naissance du groupe U16 de cette saison est 2004 et 2005.
    Pour afficher les dates de naissance de la saison en cours(2019-2020) pas de soucis (2019-14 (ou -15) : var n = d.getUTCFullYear()-15;) jusqu'au 31 décembre 2019. Par contre, à partir du 1 janvier 2020, cela devient automatiquement : 2005-2006. Hors, il faudrait continuer à afficher jusqu'au 30 juin les années 2004-2005.
    Pour le calcul de l'année civile de naissance, pas de soucis:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      var d = new Date();
      var n = d.getUTCFullYear()-100;
      document.getElementById("year601").innerHTML = n;
    Auriez vous une idée d'un IF-THEN-ELSE qui ferait cette vérification.

    D'avance merci pour votre aide

    Dirk.

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Bonjour,
    il faudrait continuer à afficher jusqu'au 30 juin les années 2004-2005.
    pourquoi ne pas prendre comme date de référence justement le 30/06 pour tes calculs.

    Quiz de ceux qui sont naît entre les deux dates !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    const dateRef = new Date("2020-06-30");
    dateRef.setFullYear(dateRef.getFullYear() - 15);
    console.log(dateRef);
    //>Thu Jun 30 2005 02:00:00 GMT+0200 (heure d’été d’Europe centrale)

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Décembre 2012
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Bonjour NoSmoking,
    merci pour ta réponse.
    C'est effectivement une solution.
    Par contre dans ton code (const dateRef = new Date("2020-06-30")) il me faudrait que 2020 soit remplacé par l'année en cours (d.getUTCFullYear()). Ca, c'est histoire de ne pas devoir modifier toutes mes pages chaque année .
    Ce qui est compliqué, dans notre cas, c'est, par exemple, que l'on utilise les dates de naissances en années civiles tout en incluant ces joueurs dans leurs catégories jusqu'au 30 juin de l'année suivante.
    En résumé et, par exemple, pour cette saison (2019-2020): un joueur de 15 ans né en 2005 doit rester moins de 16 ans du 1ier janvier 2020 au 30 juin 2020 et passe en catégorie U18 à partir du 1ier septembre 2020. par contre, celui né en 2006 reste U16 encore une saison.
    Est ce clair ?
    Aurais tu une idée de script?
    Merci d'avance.

    Dirk

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Cela revient à récupérer l'année du début de la saison.
    - Saison 2019-2020, début de saison 2019
    - Saison 2020-2021, début de saison 2020
    ...
    cela peut se faire simplement de la façon suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function getAnneeDebutSaison() {
      const d = new Date();
      const y = d.getFullYear();
      return d.getMonth() > 5 ? y : (y - 1);  // nota : l'index des mois commence à 0
    }
    En résumé, si le mois est supérieur au mois de juin alors on prend l'année en cours sinon on prend l'année précédente pour faire le calcul.

Discussions similaires

  1. Réponses: 8
    Dernier message: 14/10/2017, 01h17
  2. [AC-2010] calcul d'une moyenne sur cellule non vide
    Par lolocdm dans le forum Access
    Réponses: 1
    Dernier message: 02/02/2015, 13h51
  3. Calcul d'une année
    Par fredericfrançoise dans le forum Webi
    Réponses: 1
    Dernier message: 12/03/2013, 14h56
  4. Calcul année de naissance avec une requête sql
    Par kroma23 dans le forum Bases de données
    Réponses: 5
    Dernier message: 26/01/2012, 19h01
  5. [XL-2003] formule de calcul sur une année
    Par novice06 dans le forum Excel
    Réponses: 3
    Dernier message: 27/09/2011, 10h39

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