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 sur date


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 11
    Points : 6
    Points
    6
    Par défaut Calcul sur date
    Bonjour/Bonsoir
    Je cherche à savoir comment faire un calcul sur une date, à savoir :
    j'entre une date (format : jj/MM/AAAA) et sur celle ci je voudrai ajouter x mois et ce qui m'embête le plus c'est que l'année peut changer en fonction dunombre de mois ajouté.J'ai beau chercher, mais je n'ai pas trouvé de script déjà fait. Quelqu'un aurait il une petite idée à ce propos.
    Par avance merci

  2. #2
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 98
    Points : 64
    Points
    64
    Par défaut
    Salut crickeur,

    Tu regardes juste les mois donc on peut rajouter 8mois, 6mois, etc... mais pas 6mois et 10jours ?

    Si c'est le cas tu peux pas faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    function calcDate(maDate, nbMois)
    {
    var jour = maDate.split('/')[0];
    var mois = maDate.split('/')[1];
    var annee = maDate.split('/')[2];
     
    if ((parseInt(mois) + parseInt(nbMois)) > 12 )
    {
         mois = (parseInt(mois) + parseInt(nbMois) - 12;
         annee = parseInt(annee) + 1;
    }
    alert(maDate + ' + ' + nbMois + ' = ' + jour + '/' + mois + '/' + annee); 
    }
    J espere que c'est bien ce que tu cherchais. Bonne soirée

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 670
    Points
    66 670
    Billets dans le blog
    1
    Par défaut
    Sinon en passant par la date système

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    setDate() setMonth() setFullYear()
    getDate getMonth() getFullYear()
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  4. #4
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    dans ce style :

    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
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Document sans nom</title>
    <script type="text/javascript">
    Date.prototype.addMonth = function (nbMonth){
     
    			var firstD = parseInt(this.getDate());
     
    			var firstM = parseInt(this.getMonth());
     
    			var firstY = parseInt(this.getFullYear());
     
    			var date1 = new Date();
     
    			date1.setDate( firstD );
    			//On gère si mois courant + nombres de mois > 12
    			var nbMonthSupp = (firstM + nbMonth) % 12 ;
     
    			if(nbMonthSupp != 0){
    				//Nombre de mois en fonction du nombre d'années en plus
    				this.setMonth(nbMonthSupp);
    				//Calcul du nombre d'année supplémentaire
    				var nbYearSupp = parseInt((firstM + nbMonth) / 12);
    				this.setFullYear(firstY + nbYearSupp);
    			}
    			else{
    				this.setMonth( firstM + nbMonth); //Sinon on ajoute simplement le nombre de mois
    				this.setFullYear(firstY);
    			}
    			}
     
    var toto = new Date();
    toto.addMonth(10);
    alert(toto);
    var toto = new Date();
    toto.addMonth(3);
    alert(toto);
     
    </script>
    </head>
     
    <body>
    </body>
    </html>
    est ton ami fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes

    Premier ministre du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts )

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 11
    Points : 6
    Points
    6
    Par défaut Calcul sur date
    Merci pour votre aide à tous, je commencerai par Devin59
    J'ai un peu de mal à faire tourner ta fonction, ci dessous mon code, peut être que j'ai oublié un paramètre par là

    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
    <input type="text" id="champ" name="mavar"><br/><br/>
    <input type="text" id="champ2" name="mavar2">
    <input type="text" id="entree" name="entreeparc" value="" onChange="javascript:calcDate(30/10/2008,24);">
    <a href='javascript:popup()'> Tableau des taux de reprise</a>
     
     
    <SCRIPT language="JavaScript">
    <!--   // Cache ce qui suit aux navigateurs qui ne supportent pas JavaScript
     
    	function calcDate(maDate, nbMois)
    {
    var jour = maDate.split('/')[0];
    var mois = maDate.split('/')[1];
    var annee = maDate.split('/')[2];
     
    if ((parseInt(mois) + parseInt(nbMois)) > 12 )
    {
         mois = (parseInt(mois) + parseInt(nbMois) - 12;
         annee = parseInt(annee) + 1;
    }
    alert(maDate + ' + ' + nbMois + ' = ' + jour + '/' + mois + '/' + annee); 
    }
     
    //-->  // Fin de la partie cachée
    </SCRIPT>
    </body>
    Pour les autres, je regarde de près les solutions proposées et je posterai par la suite.

    Encore merci à tous

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 11
    Points : 6
    Points
    6
    Par défaut Calcul sur date
    Salut à tous,

    Merci à toi "le_chomeur" c'estexactement ce que je recherchai, juste une dernière petite question pratique :

    Comment appeler cette fonction dans du HTML, par exemple j'ai fais celà dans mon code mais la fonction s'exécute quand même sans que la condition soit réuni ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" id="entree" name="entreeparc" value="" onChange="javascript:date.prototype.addMonth();">
    En clair quel est le nom de cette fonction ?

    Merci

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 45
    Points : 35
    Points
    35
    Par défaut
    le_chomeur utilise la partie objet de javascript pour l'appeler tu fait comme en java

    var madate = new Date("12/12/2012");
    madate.addMonth(8);

  8. #8
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    le nom de la fonction est AddMonth() et s'exécute comme une méthode de l'objet Date()

    il te faut donc utiliser cette méthode sur un objet date :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    var maDate = new Date() // la date courante
     
    maDate.addMonth(5) // on ajoute 5 mois à la date courante :)
    Voila
    est ton ami fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes

    Premier ministre du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts )

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 11
    Points : 6
    Points
    6
    Par défaut calcul sur date
    En fait je me suis mal exprimé, ce n'est pas le nom de la fonction que je cherchais,c'est appeler la fonction donnée par le_chomeur à partir de ma balise input que je n'arrivais pas à écrire, est ce la syntaxe suivante est correcte ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" id="entree" name="entreeparc" value="" onChange="javascript:AddMonth();">
    merci de votre aide

  10. #10
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Oui ça m'a l'air d'être correct. Bon tu peux omettre le javascript mais bon

  11. #11
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 670
    Points
    66 670
    Billets dans le blog
    1
    Par défaut
    Oui un onchange ne s'attend pas à contenir une recette de crèpes suzette, alors le javascript: est plus que superflu ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  12. #12
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    tu souhaites , lors du onchange, ajouter le nombre de mois passé dans ton input et récupérer le résultat dans un autre input ??
    est ton ami fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes

    Premier ministre du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts )

  13. #13
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 11
    Points : 6
    Points
    6
    Par défaut Calcul sur date
    En fait ce que je souhaite, c'est lorsque je remplis le input "entree" avec une date quelconque (pas forcément la date du jour) ensuite je fais une tabulation pour passer au champ suivant, c'est à ce moment que le script de le_chomeur se déclenche et la date entrée dans le input est affectée à toto dans le script

  14. #14
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Dans ce cas tu peux utiliser l'évènement onblur (Evénément intrinsèque qui se déclenche lorsque l'élément perd le focus. Par exemple, lorsqu'on change le contenu d'un objet d'un formulaire et qu'on quitte cet objet)

    Des infos encore sur le sujet : http://www.developpez.net/forums/sho...d.php?t=382499

  15. #15
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 11
    Points : 6
    Points
    6
    Par défaut calcul sur date
    Moi ce qui me gêne pour l'instant c'est la syntaxe du input dans le code suivant :
    <input type="text" id="entree" name="entreeparc" value="" onChange="javascript:?????;">

    quel syntaxe je dois utiliser pour déclencher le script que le_chomeur m'a donné ci dessous.

    à la place des ???? j'ai essayé AddMonth() mais ça ne fonctionne pas, puisque le script se lance même si je ne modifie pas la valeur du input

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [ WinDev ] Calcul sur date dans SQL
    Par Tchupacabra dans le forum Langage SQL
    Réponses: 8
    Dernier message: 28/02/2006, 12h12
  2. Calcul sur date dans SQL
    Par Tchupacabra dans le forum WinDev
    Réponses: 4
    Dernier message: 27/02/2006, 19h23
  3. [débutant] calcul sur date
    Par Regis.C dans le forum Collection et Stream
    Réponses: 9
    Dernier message: 04/01/2005, 10h51
  4. Resutlat de calcul sur date formaté
    Par neness dans le forum SQL
    Réponses: 6
    Dernier message: 16/06/2004, 15h34
  5. Calcul sur date
    Par Thomad dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 17/09/2003, 08h55

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