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

VC++ .NET Discussion :

Heure c++ .net


Sujet :

VC++ .NET

  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2007
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 124
    Par défaut Heure c++ .net
    Bonjours,

    J'ai 2 textbox et une label
    dans les textbox je rentre l'heure de début et l'autre l'heure de fin .
    je veux avoir la différence entre les 2 et mettre cette différence dans le label.

    textBox1=heures de début textBox2=heures de fin label1=nombre total d'heures entre les 2 textBox.
    10:00 16:00 = 6:00 heures

    C++.net

    Merci beaucoup d'avance pour votre réponse.

    TrollTop

  2. #2
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    il faut utiliser un timespan voir dans la faq C++/cli http://dotnet.developpez.com/faq/cpp...meBetweenDates

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2007
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 124
    Par défaut Je comprend pas
    J'ai fait ca mais ca fonctionne pas est ce que tu pourais m'éclairer S.V.P

    DateTime DateCourante = textBox3->Text;
    DateTime DateCreationquestion = textBox4->Text;

    TimeSpan ^Ts = DateCourante - DateCreationquestion;
    label22->Text = Ts;

  4. #4
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    qu'est-ce qui ne marche pas ? erreur de compilation ? mauvais résultat ?

  5. #5
    Membre confirmé
    Inscrit en
    Juillet 2007
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 124
    Par défaut erreur de compilation
    Erreur de compilation

    voici les erreurs

    1>d:\visual studio 2005\mem2007\mem2007\Horaire.h(8313) : error C2440: 'initialisation' : impossible de convertir de 'System::String ^' en 'System::DateTime'
    1> Aucun opérateur de conversion défini par l'utilisateur disponible, ou
    1> Aucun opérateur de conversion définie par l'utilisateur disponible qui puisse effectuer cette conversion, ou l'opérateur ne peut pas être appelé
    1>d:\visual studio 2005\mem2007\mem2007\Horaire.h(8314) : error C2440: 'initialisation' : impossible de convertir de 'System::String ^' en 'System::DateTime'
    1> Aucun opérateur de conversion défini par l'utilisateur disponible, ou
    1> Aucun opérateur de conversion définie par l'utilisateur disponible qui puisse effectuer cette conversion, ou l'opérateur ne peut pas être appelé
    1>d:\visual studio 2005\mem2007\mem2007\Horaire.h(8317) : error C2664: 'void System::Windows::Forms::Control::Text::set(System::String ^)' : impossible de convertir le paramètre 1 de 'System::TimeSpan ^' en 'System::String ^'
    1> Aucun opérateur de conversion défini par l'utilisateur disponible, ou
    1> Les types pointés n'ont aucun rapport entre eux ; conversion nécessitant reinterpret_cast, cast de style C ou cast de style fonction
    1>Horaire.cpp
    1>d:\visual studio 2005\mem2007\mem2007\Horaire.h(8313) : error C2440: 'initialisation' : impossible de convertir de 'System::String ^' en 'System::DateTime'
    1> Aucun opérateur de conversion défini par l'utilisateur disponible, ou
    1> Aucun opérateur de conversion définie par l'utilisateur disponible qui puisse effectuer cette conversion, ou l'opérateur ne peut pas être appelé
    1>d:\visual studio 2005\mem2007\mem2007\Horaire.h(8314) : error C2440: 'initialisation' : impossible de convertir de 'System::String ^' en 'System::DateTime'
    1> Aucun opérateur de conversion défini par l'utilisateur disponible, ou
    1> Aucun opérateur de conversion définie par l'utilisateur disponible qui puisse effectuer cette conversion, ou l'opérateur ne peut pas être appelé
    1>d:\visual studio 2005\mem2007\mem2007\Horaire.h(8317) : error C2664: 'void System::Windows::Forms::Control::Text::set(System::String ^)' : impossible de convertir le paramètre 1 de 'System::TimeSpan ^' en 'System::String ^'
    1> Aucun opérateur de conversion défini par l'utilisateur disponible, ou
    1> Les types pointés n'ont aucun rapport entre eux ; conversion nécessitant reinterpret_cast, cast de style C ou cast de style fonction
    1>Génération de code en cours...
    1>Le journal de génération a été enregistré à l'emplacement "file://d:\Visual Studio 2005\MEM2007\MEM2007\Debug\BuildLog.htm"
    1>MEM2007 - 6 erreur(s), 0 avertissement(s)
    ========== Génération : 0 a réussi, 1 a échoué, 0 mis à jour, 0 a été ignoré ==========

  6. #6
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    faut mettre un tostring derriere pour convertir en chaine

  7. #7
    Membre confirmé
    Inscrit en
    Juillet 2007
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 124
    Par défaut
    Comme ceci

    DateTime DateCourante = Convert::ToString(textBox3->Text);
    DateTime DateCreationquestion = Convert::ToString(textBox4->Text);

    TimeSpan ^Ts = DateCourante - DateCreationquestion;
    label22->Text = Ts;

    Si oui ca ne fonctionne pas non plus

    ca me donne c'est erreur.

    1>d:\visual studio 2005\mem2007\mem2007\Horaire.h(8316) : error C2440: 'initialisation' : impossible de convertir de 'System::String ^' en 'System::DateTime'
    1> Aucun opérateur de conversion défini par l'utilisateur disponible, ou
    1> Aucun opérateur de conversion définie par l'utilisateur disponible qui puisse effectuer cette conversion, ou l'opérateur ne peut pas être appelé
    1>d:\visual studio 2005\mem2007\mem2007\Horaire.h(8317) : error C2440: 'initialisation' : impossible de convertir de 'System::String ^' en 'System::DateTime'
    1> Aucun opérateur de conversion défini par l'utilisateur disponible, ou
    1> Aucun opérateur de conversion définie par l'utilisateur disponible qui puisse effectuer cette conversion, ou l'opérateur ne peut pas être appelé
    1>d:\visual studio 2005\mem2007\mem2007\Horaire.h(8320) : error C2664: 'void System::Windows::Forms::Control::Text::set(System::String ^)' : impossible de convertir le paramètre 1 de 'System::TimeSpan ^' en 'System::String ^'
    1> Aucun opérateur de conversion défini par l'utilisateur disponible, ou
    1> Les types pointés n'ont aucun rapport entre eux ; conversion nécessitant reinterpret_cast, cast de style C ou cast de style fonction
    1>Horaire.cpp
    1>d:\visual studio 2005\mem2007\mem2007\Horaire.h(8316) : error C2440: 'initialisation' : impossible de convertir de 'System::String ^' en 'System::DateTime'
    1> Aucun opérateur de conversion défini par l'utilisateur disponible, ou
    1> Aucun opérateur de conversion définie par l'utilisateur disponible qui puisse effectuer cette conversion, ou l'opérateur ne peut pas être appelé
    1>d:\visual studio 2005\mem2007\mem2007\Horaire.h(8317) : error C2440: 'initialisation' : impossible de convertir de 'System::String ^' en 'System::DateTime'
    1> Aucun opérateur de conversion défini par l'utilisateur disponible, ou
    1> Aucun opérateur de conversion définie par l'utilisateur disponible qui puisse effectuer cette conversion, ou l'opérateur ne peut pas être appelé
    1>d:\visual studio 2005\mem2007\mem2007\Horaire.h(8320) : error C2664: 'void System::Windows::Forms::Control::Text::set(System::String ^)' : impossible de convertir le paramètre 1 de 'System::TimeSpan ^' en 'System::String ^'
    1> Aucun opérateur de conversion défini par l'utilisateur disponible, ou
    1> Les types pointés n'ont aucun rapport entre eux ; conversion nécessitant reinterpret_cast, cast de style C ou cast de style fonction

  8. #8
    Membre confirmé
    Inscrit en
    Juillet 2007
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 124
    Par défaut
    J'ai changé ma formule ca compile mais erreur quand je rentre les nombre dans la textBox;

    voici la formule que j'ai utilisé

    DateTime TempDebut = Convert::ToDateTime(textBox3);
    DateTime TempFin = Convert::ToDateTime(textBox4);

    TimeSpan ^Ts = TempDebut - TempFin;
    String ^TempTotal = Convert::ToString(Ts);
    label22->Text = TempTotal;

    et Voici l'erreur

    ************** Texte de l'exception **************
    System.InvalidCastException: Impossible d'effectuer un cast d'un objet de type 'System.Windows.Forms.TextBox' en type 'System.IConvertible'.
    à System.Convert.ToDateTime(Object value)
    à MEM2007.Horaire.textBox4_TextChanged(Object sender, EventArgs e) dans d:\visual studio 2005\mem2007\mem2007\horaire.h:ligne 8638
    à System.Windows.Forms.Control.OnTextChanged(EventArgs e)
    à System.Windows.Forms.TextBoxBase.OnTextChanged(EventArgs e)
    à System.Windows.Forms.TextBoxBase.WmReflectCommand(Message& m)
    à System.Windows.Forms.TextBoxBase.WndProc(Message& m)
    à System.Windows.Forms.TextBox.WndProc(Message& m)
    à System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
    à System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
    à System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

  9. #9
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    sous quelle forme tu saisis ta date dans le champ texte ?

  10. #10
    Membre confirmé
    Inscrit en
    Juillet 2007
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 124
    Par défaut
    si je comprend bien ta question.

    Je la saisie comme ca 10:00

    je pense que je viens de comprendre pourquoi ca fonctionne pas

    le code s'enclanche quand il ya une frappe TextChanged

    est ce que tu sais où je pourais le mettre a part TextChanged

    Je suis sûr que c'est ca le probleme

    en passant j'ai un code pour accepter juste des nombres comment pourais-je faire pour mettre un : automatique ; Ex si je rentre 1000 il va écrire 10:00 et 100 il va écrire 1:00

    Voici le code que j'ai pour le num

    if ((e->KeyChar < 48 || e->KeyChar > 57) && e->KeyChar != 8 && e->KeyChar != 13)
    {
    e->Handled = true;
    }

    Merci beaucoup pour ton aide tu est super sympatique.

    TrollTop

  11. #11
    Membre confirmé
    Inscrit en
    Juillet 2007
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 124
    Par défaut
    J'ai régler mon probleme ca fonctionne mais il me donne comme réponse

    tempdebut tempfin temptotal
    10:00 20:00 10:00:00

    il me donne les secondes et je les veux pas ya t'il une règle

    pis j'ai trouver c'est validated pour la question précédente

    voici le code qui fonctionne

    private: System::Void Validated(System::Object^ sender, System::EventArgs^ e) {
    DateTime TempDebut = Convert::ToDateTime(textBox3->Text);
    DateTime TempFin = Convert::ToDateTime(textBox4->Text);

    TimeSpan ^Ts = TempFin - TempDebut;
    String ^TempTotal = Convert::ToString(Ts);
    label22->Text = TempTotal;
    }

    pour la question du 2 point : c'est encore actif pas trouver comment faire.

    TrollTop

    C++.net

  12. #12
    Membre confirmé
    Inscrit en
    Juillet 2007
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 124
    Par défaut
    ah! ca marche pas le code il y a bug il ne respecte pas vraiement les heures

    ex: 22:00 a 6:00 = -16:00 avec ce code

    Pourquoi ? je pensais que datetime allait géré ça

    est ce que je vais être oubliger de faire un tableau avec tout les heures définit a l'intérieur et calculer combien d'heure les sépares.

    [1:00,2:00,3:00,4:00,...,23:00,0:00]

    mais si je rentre 39:00 heures (qui existe pas) avec le code que j'ai présentement il va le calculer pareil. Pas Correct ça

    Si tu comprend ce que je viens d'écrire peux-tu m'éclarer où m'aider à faire fonctionner le DateTime comme il faut si c'est possible.

    TrollTop qui a mal a tête.

    c++.net

  13. #13
    Membre confirmé
    Inscrit en
    Juillet 2007
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 124
    Par défaut
    J'écrit trop vite j'ai la solution pour le problème du 22:00 à 6:00 = -16:00

    il s'uffisait dit dire que si l'heure de fin et plus petite que l'heure de début rajout 24 heures a heure de fin

    DateTime TempDebut = Convert::ToDateTime(textBox3->Text);
    DateTime TempFin = Convert::ToDateTime(textBox4->Text);
    if (TempFin < TempDebut) TempFin = TempFin.Add(TimeSpan(1,0,0,0));
    TimeSpan ^Ts = TempFin - TempDebut;
    String ^TempTotal = Convert::ToString(Ts);
    label22->Text = TempTotal;

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

Discussions similaires

  1. Réponses: 12
    Dernier message: 03/01/2007, 13h55
  2. [VB.NET][Service Win.] Service windows executer a une heure
    Par jj del amorozo dans le forum VB.NET
    Réponses: 3
    Dernier message: 27/11/2006, 08h24
  3. [VB.NET][VS 2003] Des Heures qui se transforment en date
    Par Herlece dans le forum Accès aux données
    Réponses: 4
    Dernier message: 24/11/2006, 09h38
  4. Réponses: 7
    Dernier message: 31/10/2006, 00h36
  5. [VB.NET] Comment mettre à jour Date/Heure de mon PDA ?
    Par zitoun dans le forum Windows Mobile
    Réponses: 2
    Dernier message: 16/05/2006, 14h12

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