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 :

Gestion ann�e N+1 dans contr�le date


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �clair� Avatar de Marcopololo
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    311
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 311
    Par d�faut Gestion ann�e N+1 dans contr�le date
    Bonjour,
    J'ai ce code qui me permet de faire un calcul de date pour supprimer des options d'une liste d�roulante mais j'ai un petit soucis.
    son fonctionnement :
    Je calcule la date et si la date du 15 septembre n'est pas d�pass� ma condition if n'est pas remplie.
    Pour rendre automatique d'une ann�e � l'autre j'ai utilis� l'expression getFullYear() pour figer la saison en cours; ann�e N.
    Mon probl�me est que quand on passera au premier janvier suivant (N+1) cela ne fonctionnera plus.
    Comment puis je faire pour conserver cette date jusqu'au 14 septembre de l'ann�e N+1 ?

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    //jour et mois début de la saison
      const mois=9;
      const jour=15;
     
     
     
      var d = new Date();
      // date de fin apparition ensemble liste déroulante type compétition
      var date_fin = d.getFullYear()+','+(mois)+','+(jour);
    // conversion date
      var date_conv = Date.parse(date_fin);
      var date_maint = Date.parse(d);
     
      //Si date conv est après maintenant alors on supprime sélective et manche de coupe de France de la liste déroulante
      if (Number((date_conv)+ 8.64*Math.pow(10,7)) < date_maint)
    Merci d'avance

    Marc G.

  2. #2
    Membre �clair� Avatar de Marcopololo
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    311
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 311
    Par d�faut
    Bonjour,
    Voil� ce que j'ai fait.
    Es ce que cela ne fait pas trop usine � gaz ?
    J'ai pris 1er juillet comme r�f�rence car les comp�titions sont toutes termin�es et les inscriptions pour la saison suivante n'ont pas commenc�es.
    Merci de votre avis

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    //calcul d'une valeur de référence en ms entre le 1er juillet et le 1er janvier
    var date_comp1 = new Date("01/01/2020");
    var date_comp2 = new Date ("07/01/2020");
    diff_tcomp = date_comp2.getTime()- date_comp1.getTime();
     
    // Calcul des ms depuis début de l'année en cours
    var d = new Date();
    var date_an = d.getFullYear()+','+01+','+01;
     
    //conversion date en ms
    var date_conv_an = Date.parse(date_an);
    var date_maint = Date.parse(d),
    dif_tactu= date_maint - date_conv_an;
     
    // date de fin apparition ensemble liste déroulante type compétition
      var saison = d.getFullYear();
     
     
     
      if(number(diff_tcomp - dif_tactu > 0 {
    	  // j'enlève un à mon année
    	  var date_fin = (saison-1)+','+(mois)+','+(jour);
      }
      Else{
    	  // sinon je n'enlève rien
    	 var date_fin = saison+','+(mois)+','+(jour); 
      }

  3. #3
    Membre �clair� Avatar de Marcopololo
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    311
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 311
    Par d�faut
    Voici mon code global. Bennn.. il marche plus.
    C'est depuis que j'ai ins�r� ma condition if sur les saisons. Peut �tre faut il proc�der autrement ?


    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
     
    window.addEventListener("load",function(){
     
      //jour et mois début de la saison
      const mois=3;
      const jour=13;
     
      // Appel id de ma liste déroulante
     var maListe = document.getElementById('type_competition');
     
      //calcul d'une valeur de référence en ms entre le 1er juillet et le 1er janvier
    var date_comp1 = new Date("01/01/2020");
    var date_comp2 = new Date ("07/01/2020");
     
     
     
    // Calcul des ms depuis début de l'année en cours
    var d = new Date();
    var date_an = d.getFullYear()+','+01+','+01;
     
     
     
    //conversion dates en ms
    var date_conv_an = Date.parse(date_an);
    var date_maint = Date.parse(d),
     
     
    // calcul des différences
    diff_tcomp = date_comp2.getTime()- date_comp1.getTime();
    dif_tactu= date_maint - date_conv_an;
     
      // date de fin apparition ensemble liste déroulante type compétition
        var saison = d.getFullYear();
     
    	//Controle saison
    	if(number(diff_tcomp - diff_tactu) > 0) {
    	  // j'enlève un à mon année
    	  var date_fin = (saison-1)+','+(mois)+','+(jour);
      }
      Else{
    	  // sinon je n'enlève rien
    	 var date_fin = saison+','+(mois)+','+(jour); 
      }
    //conversion date de fin en ms  
    var date_conv = Date.parse(date_fin);	
     
      //Si date conv est après maintenant alors on supprime sélective et manche de coupe de France de la liste déroulante
      if (Number((date_conv)+ 8.64*Math.pow(10,7)) < date_maint){
     
      //  on supprime les champs Manche de coupe de France 3  et Sélective 2 de la liste déroulante		
         maListe.removeChild(maListe.childNodes[3]),
         maListe.removeChild(maListe.childNodes[2]);  
     
      }},false) 
     
    </script>

  4. #4
    Membre extr�mement actif Avatar de psychadelic
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2 532
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2 532
    Par d�faut
    rien compris � ton �nonc�, c'est pour quoi faire ?

  5. #5
    Mod�rateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 211
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par d�faut
    Bonjour,
    ton manque de rigueur est ... je ne sais comment dire sans f�cher

    Petit rappel au cas o�, Else n'existe pas en JavaScript qui est sensible � la casse.

    Je calcule la date et si la date du 15 septembre n'est pas d�pass� ma condition if n'est pas remplie.
    Pourquoi ne pas penser plut�t � si la date est sup�rieure au 15/09/ann�e alors... � ?

    Une discussion qui peut t�int�resser : Calcul d'une ann�e de naissance non civile.

  6. #6
    Membre �clair� Avatar de Marcopololo
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    311
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 311
    Par d�faut
    Je reconnais que ce n'est pas structur�. J'apprends au coup par coup, ce qui explique.
    Non suis pas f�ch�, je m'en doute bien un peu.
    Ok pour le Else. Je m'inspire de la litt�rature sur internet et tout n'est pas toujours top.
    Effectivement la discussion ann�e non civile rend les choses plus que simples.
    Je vais revoir ma copie

  7. #7
    Membre �clair� Avatar de Marcopololo
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    311
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 311
    Par d�faut
    Je vais essay� de poser des questions de base alors.

    J'ai donc bien vu la fonction de calcul de saison qui me convient bien.

    Dans mon code principal j'ai
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    window.addEventListener("load",function(){.... 
    ....},false)
    O� dois je mettre ma fonction saison ?

    Seconde question. J'ai lu que je pouvais cr�er une variable qui fait appel � ma fonction ?

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [Vxi3] Ann�e par d�faut dans les dates
    Par schkrumble dans le forum Webi
    R�ponses: 1
    Dernier message: 21/04/2011, 15h27
  2. R�cuperer l'ann�e dans une date en HQL
    Par DevServlet dans le forum Hibernate
    R�ponses: 1
    Dernier message: 03/09/2009, 17h00
  3. R�ponses: 3
    Dernier message: 02/05/2008, 19h51
  4. [Dates] Remplacement de mois et d'ann�e dans la date
    Par Jerkorota dans le forum Langage
    R�ponses: 7
    Dernier message: 03/09/2007, 11h52

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