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

Visual C++ Discussion :

nombre de mois entre 2 dates affichées dans des textBox


Sujet :

Visual C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 6
    Par défaut nombre de mois entre 2 dates affichées dans des textBox
    Bonjour à tous, je suis novice et je rencontre quelques difficultés. Si une âme charitable pouvait me donner un tuyau, je suis preneur.

    J'avais fait une application dans laquelle je calculais le nombre de mois entre 2 dates. Je l'avais fait à la base avec une "Application Windows Form" en Visual Basic. Malheureusement, je me suis rendu compte que je ne pouvais pas faire un exécutable indépendant avec ce projet. Du moins j'ai pas trouvé comment faire.
    Je me suis lancé dans un projet en Visual C++ avec une Windows Form Application qui me permet de faire un .exe indépendant.

    Le problème est que j'ai du mal.....avec le code....snifff

    J'ai donc 4 textBox et 1 MonthCalendar. TextBox1 = date de début, TextBox2 = date de fin, TextBox3 = nombre de mois, textBox4=points.

    Lorsque je clique sur textBox1 ou TextBox2, j'affiche le calendrier. Lorsque je sélectionne une date, j'affiche cette date dans la textbox correspondante. Ça c'est ok, ça marche. La date s'affiche sous la forme jj/mm/aaaa.

    Je souhaite afficher dans textbox3 le nombre de mois entier entre les 2 dates de textbox1 et textbox2. La textBox 4 = valeur de Textbox3 x 4.

    Dans mon 1er projet en Vb 2010 express çà donnait ça :

    Code VB : 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
         Dim Date1, Date2, Jour1, Jour2, Texte1, Texte2
     
         Date1 = TextBox1.Value
         Date2 = TextBox2.Value
         Jour1 = Day(Date1)
         Jour2 = Day(Date2)
     
                      If Jour1 > Jour2  Then
                           TextBox3.Value = ((DateDiff("m", Date1, Date2)) - 1)     //DateDiff rendant la valeur 1  pour le résultat entre 10/10/12 et 09/11/12, je fais donc -1
                      End If
                      If Jour1 < Jour2  Then
                           TextBox3.Value = DateDiff("m", Date1, Date2)
                      End If
                      If Jour1 =  Jour2  Then
                           TextBox3.Value = DateDiff("m", Date1, Date2)
                      End If
     
             TextBox4.Value = (Int(TextBox3.Value)) * 4

    J'ai eu beau chercher, je n'ai pas réussi à trouver comment faire dans mon projet Visual C++.
    Je n'arrive pas à faire l'équivalent de Jour1 = Day(Date1)....idem pour la fonction datediff...

    Je me suis déjà résigné à faire mon calendrier dans une Form2 car je n'arrivais pas a renvoyer la date dans les textbox de la Form1. De ce fait, J'ai inséré le calendrier dans ma Form1 que je rend visible ou non en fonction d'un Click dans mes textbox1 ou 2.
    Si quelqu'un à une soluce pour ça aussi...

    Merci d'avance.

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    J'ignore ce que donnent les calendriers en .Net Windows Forms, mais soit directement soit en parsant, tu dois pouvoir obtenir une paire de System::DateTime. Tu les soustraits, ce qui donne un System::TimeSpan, et tu obtiendras un nombre de jours que tu pourras diviser par (365.25/12)...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 488
    Par défaut
    Je plussoie Médinoc, comme d'hab.

    Juste pour dire qu'un projet C++/CLI Winform a tout autant de "dépendance" qu'un projet VB.NET Winform.

    Vous vous compliquez la vie pour rien.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 6
    Par défaut
    J'ai déjà essayé avec TimeSpan en utilisant des dateTimePicker.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
                                     int mois, difference;
    				 TimeSpan temps;
    				 if ((dateTimePicker2->Value)>(dateTimePicker1->Value))
    				 {
    					 temps= ((dateTimePicker2->Value)-(dateTimePicker1->Value));
    					 mois= System::Convert::ToInt32 (temps.Days);
    					 difference= mois/30.5;
    					 textBox1->Text= System::Convert::ToString (resultat);
    				 }
    C'est pas mal, mais ça me donne pas vraiment le résultat que je souhaite car il n'est pas juste.
    Par exemple, entre le 01/02/14 et le 01/03/14 je veux récupérer "nbre de mois" =1 or avec TimeSpan ça me donne 0. La valeur prend 1 au 04/03/14.
    C'est pas bon pour ce que je veux faire.

    La fonction dateDiff sous VB 2010 Express, que j'utilisais dans mon exemple, me permettais de le faire. Y a t'il une fonction en Visual C++ qui permette la même chose..?

  5. #5
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Es-tu sûr de vouloir arrondir à l'inférieur?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  6. #6
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 488
    Par défaut
    La fonction dateDiff sous VB 2010 Express
    Ca existe dans tout langage .NET :
    https://msdn.microsoft.com/en-us/lib...or=-2147217396

    Je vous le répète vous faite un travail TOTALEMENT inutil, projet C++/CLI Winform a tout autant de "dépendance" qu'un projet VB.NET Winform.

Discussions similaires

  1. Calculer le nombre de mois entre 2 dates
    Par solange44 dans le forum Collection et Stream
    Réponses: 10
    Dernier message: 03/04/2010, 19h17
  2. [Dates] nombre de mois entre deux dates
    Par Mat_DZ dans le forum Langage
    Réponses: 14
    Dernier message: 23/11/2006, 16h10
  3. Nombre de mois entre deux dates
    Par boulaxx dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 14/09/2006, 15h22
  4. Calcul du nombre de mois entre 2 dates
    Par Bes74 dans le forum Access
    Réponses: 1
    Dernier message: 22/08/2006, 22h15
  5. Nombre de mois entre 2 dates
    Par gripoil dans le forum Langage SQL
    Réponses: 7
    Dernier message: 16/01/2006, 13h05

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