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 de solde à partir de la date


Sujet :

JavaScript

  1. #1
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 22
    Par défaut Calcul de solde à partir de la date
    Salut tout le monde,

    voilà je veux simplement calculer un solde initial de congé à partir d'une date saisie sur le formulaire.

    J'ai chercher pour trouver une fonction de calcul des mois entre deux date car:

    le solde = nbr de mois *1.75.

    cette fonction que j'ai pas encore pu avoir le resultat calcul le nombre de mois:
    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
    function ecart_mois(date_max, date_min)
    	{   
    		var explode_date_min;
    		var explode_date_max;
    		var mois_min;
    		var annee_min;
    		var mois_max;
    		var annee_max;
    		var ecart;
     
    		explode_date_min = date_min.split('/');
    		explode_date_max = date_max.split('/');
     
    		mois_min = parseInt(explode_date_min[0]);
    		annee_min = parseInt(explode_date_min[1]);
     
    		mois_max = parseInt(explode_date_max[0]);
    		annee_max = parseInt(explode_date_max[1]);
     
    		ecart = ((annee_max - annee_min)*12) - (mois_min) + (mois_max);
     
    		return ecart;
    	}
    Par la suite lors de saisie de la date de recrutement, le champ solde de congé doit afficher le solde calculer par cette fonction:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function calculSolde() 
    { 
    datenow=new date();
    daterecrut=document.getElementById(date_recrut).value
    nbrmois=ecart_mois(datenow,daterecrut);
    document.getElementById("solde_ini").value= nbrmois*1.75;
     
    }
    Dans mon formulaire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <td> Date de Recrutement </td> 
    			<td><input type="text" name="date_recrut" id="date_recrut"  value="<?php echo (isset($_POST['date_recrut'])) ?  $_POST['date_recrut'] : ' ';?>" onClick="ds_sh(this);"  onchange="calculSolde();" /></td>
    	</tr>
     
     <input type="text"  class="" name="solde_ini"   id="solde_ini" " value="<?php echo (isset($_POST['solde_ini'])) ?  $_POST['solde_ini'] : ' ';?>"/>
    ==>onClick="ds_sh(this) : affiche le calendrier pour sélectionner la date, je suppose que mon code contient des erreurs, pouvez vous m'aider s'il vous plait! est ce que c'est juste d’appeler la fonction "ecart_mois" dans la deuxième fonction?

    Merci pour votre aimable aide

  2. #2
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    Bonsoir,

    je n'ai pas très bien compris ton problème. Où ça coince ?

  3. #3
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 22
    Par défaut
    Salut ,

    Lorsque je sélectionne la date de recrutement dans le formulaire la fonction CalculSolde doit se déclencher et je dois avoir le solde calculer automatiquement dans le champ solde_initial.

    J'ai fait les deux fonction pour ça mé si je sélectionne la date ( j'ai mis "onchange="calculSolde();") rien qui apparaît dans le champ solde_initial.

    Existe-il une erreur dans mon code à rectifier?
    Merci pour vitre aimable aide

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    Par défaut
    Bonjour,
    quelques remarques sur ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function calculSolde() {
      var datenow = new Date(); // Date et non date javascript sensible à la casse
      var daterecrut = document.getElementById('date_recrut').value; // MANQUE les quotes pour l'ID
      var nbrmois = ecart_mois(datenow, daterecrut);
      document.getElementById("solde_ini").value = nbrmois * 1.75;
    }
    et une dernière remarque, vérifies que le format de new Datecorrespond à celui que tu attends

  5. #5
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 22
    Par défaut
    Salut et désolé pour le retard

    Effectivement le format de new Date n'est celui que j'attend; le format affiché est : Thu Jun 19 2013 21:00 .... alors que le format voulu c'est 19-06-2013.

    As tu une idée comment je peu avoir ce format?

  6. #6
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    Par défaut
    Il existe les méthodes getDay, getMonth et getFullYear qui te permettront de récupérer les informations dont tu as besoin.

    http://javascript.developpez.com/faq...ipt/?page=date

  7. #7
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 22
    Par défaut
    Oui effectivement j'ai trouvé comment récupérer la date;

    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
    var explode_date_min;
      var explode_date_max;
      var mois_min;
      var annee_min;
      var mois_max;
      var annee_max;
      var ecart;
    var d = new Date();
    daterecrut=document.getElementById('date_recrut').value
        var curr_date = d.getDate();
        var curr_month = d.getMonth() + 1; //Months are zero based
        var curr_year = d.getFullYear();
      datenow=curr_date + "-" + curr_month + "-" + curr_year;
         explode_date_min = daterecrut.split('-');
      explode_date_max = datenow.split('-');
      mois_min = parseInt(explode_date_min[0]);
      annee_min = parseInt(explode_date_min[1]);
      mois_max = parseInt(explode_date_max[0]);
      annee_max = parseInt(explode_date_max[1]);
      ecart = ((annee_max - annee_min)*12)- (mois_min) + (mois_max);
     
    document.getElementById('solde_ini').value=ecart;// faut resultat
    ça me reste le calcul de solde en cours que je doit ré-examiner ...

  8. #8
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    Par défaut
    datenow=curr_date + "-" + curr_month + "-" + curr_year;
    datenow sera donc de la forme "20-06-2013"...

    ensuite tu as
    explode_date_max = datenow.split('-');
    tu obtiens donc ["20" ,"06", "2013"]...

    puis tu fais
    mois_max = parseInt(explode_date_max[0]);
    mois_max contient "20" qui est la date mais pas le mois.

    Pourquoi ne pas affecter directement mois_max et annee_max avec getMonth() et getFullYear() ?

Discussions similaires

  1. Calcul du semestre à partir d'une date
    Par mohamed_ dans le forum SAS Base
    Réponses: 8
    Dernier message: 01/06/2015, 10h19
  2. [Débutant] Calculer l'âge à partir de la date de naissance
    Par kamalGLM dans le forum VB.NET
    Réponses: 14
    Dernier message: 24/03/2015, 10h10
  3. [A-03] Calculer jours ouvrables à partir d'1 date
    Par MaryR dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 28/01/2009, 21h39
  4. [XI] Calculer le numéro d'une semaine à partir d'une date
    Par leloup84 dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 23/04/2007, 14h49
  5. [Débutant] Calcul d'une date à partir d'une date de départ et d'une durée
    Par Marmotton76 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 11/04/2007, 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