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

Discussion :

Problème d'opération sur QDateEdit

  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2
    Par défaut Problème d'opération sur QDateEdit
    Bonjour à tous !

    Alors voilà moi j'ai un petit soucis pour faire une simple soustraction de deux dâtes pour trouver le nombre de jour de différence. Et après de longues heures de recherches, je n'ai toujours pas trouvé là solution, je fais donc appel à vous.

    J'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    FenDate::FenDate()
    {
        DateDebut = new QDateEdit;
        DateDebut->setDate(QDate::currentDate());
        DateFin = new QDateEdit;
        DateFin->setDate(QDate::currentDate());
     
    ...
    }
    et j'aimerais faire la dâte dans le DateDebut moins la dâte dans le DateFin, mais comme ce sont des QDateEdit, je ne peux pas faire tout simplement :
    résultat = DateFin -DateDebut.

    J'ai bien pensé à convertir les dâtes en nombres de secondes écoulées depuis 1970 pour ensuite les soustraire mais je n'y arrive pas.

    Merci beaucoup à tous ceux qui répondront !

  2. #2
    Membre chevronné
    Homme Profil pro
    Cadre informatique
    Inscrit en
    Avril 2013
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Cadre informatique

    Informations forums :
    Inscription : Avril 2013
    Messages : 183
    Par défaut
    Coucou!!

    Citation Envoyé par Afterrage Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    FenDate::FenDate()
    {
        DateDebut = new QDateEdit;
        DateDebut->setDate(QDate::currentDate());
        DateFin = new QDateEdit;
        DateFin->setDate(QDate::currentDate());
     
        ...
    }
    Si je me souviens bien, rapidement, je te dirais que DateDebut et DateFin ne sont pas forcément des valeurs de Date.
    Tu les définies toutes les 2 comme des QDateEdit, jusque là ça passe.
    Ensuite tu leur demandes d'aller chercher la Date mais tu l'enregistres dans quoi? Tu as des valeurs pour tes 2 dates?
    Enfin ça remonte à quelques temps déjà et j'ai pas trop retouché donc essaye de voir ce point là

  3. #3
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2
    Par défaut
    "Ensuite tu leur demandes d'aller chercher la Date mais tu l'enregistres dans quoi?"

    Si c'est de cette ligne que tu parles :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DateDebut->setDate(QDate::currentDate());
    Enfaite, cela sert à présenter la dâte actuel dans le QDateEdit (le widget), et non pas à aller chercher la dâte.

    Et non, en effet, je n'ai pas deux variables qui contiennent les deux dâtes choisie par l'utilisateur au niveau des deux QDateEdit (DateDebut et DateFin), et je ne vois malheureusement pas comment récupérer ces deux valeurs dans un format où je peux les soustraire..

    En tout cas merci beaucoup de ta réponse !

  4. #4
    Membre expérimenté
    Homme Profil pro
    Analyse système
    Inscrit en
    Novembre 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyse système
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 227
    Par défaut
    Le QDateEdit te permet d'afficher une date editable dans un widget pour que l'utilisateur puisse manipuler la date.

    Seul les QDate te permette de connaitre la différence entre 2 QDate.
    il te faut donc procéder de la sorte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    FenDate::FenDate()
    {
        DateDebut = new QDateEdit;
        DateDebut->setDate(QDate::currentDate());
        DateFin = new QDateEdit;
        DateFin->setDate(QDate::currentDate());
     
        int deltaJour = DateDebut.date().daysTo(DateFin.date());
        ...
    }
    J'ai fait un peu condensé mais bon, le principe consiste à récupérer la date saisie dans le QDateEdit.

    C'est le but de la méthode date() qui te renvoie un QDate.
    à partir de là la classe QDate te fournit la méthode
    int QDate::daysTo ( const QDate & d ) const
    Returns the number of days from this date to d (which is negative if d is earlier than this date).
    Si ce n'est pas clair n'hésite pas à le dire.

Discussions similaires

  1. Réponses: 1
    Dernier message: 20/09/2011, 10h27
  2. Problème d'opération sur currency
    Par zanoubya dans le forum Débuter
    Réponses: 3
    Dernier message: 11/02/2009, 16h29
  3. Problème avec opération sur les double
    Par luimême dans le forum C#
    Réponses: 2
    Dernier message: 17/04/2008, 10h19
  4. [CR] Problème de sélection sur un champ date
    Par noluc dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 21/11/2003, 16h56
  5. problème de float sur SQL server 2000.
    Par fidji dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 24/07/2003, 14h15

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