Calcul de durée sous QT [Résolu]

Signaler
Messages postés
21
Date d'inscription
lundi 2 août 2010
Statut
Membre
Dernière intervention
23 janvier 2013
-
oum87
Messages postés
21
Date d'inscription
lundi 2 août 2010
Statut
Membre
Dernière intervention
23 janvier 2013
-
Bonsoir,
je suis débutante sur QT et je cherche à récupérer la durée(différence entre 2 dates); Pour ceci,j'ai insérée 2 objets(date/time edit)grace à QTdesigner et que j'ai réspéctivement nommé:dateEdit,et dateEdit_2
que je voudrais stockée dans une bdd,j'éssaie d'insérer dans une table contrat ces données ke j'ai récupérée de mes qlineedit:(je travaille sous Access)

QSqlQuery  q;
req="INSERT INTO contrat (CIN,date départ,date retour,prix,matricule) VALUES ('"+ui->cINLineEdit->text()+"','"+ui->dateEdit->text() +"','"+ui->dateEdit_2->text()+"','"+ui->prixPayerLineEdit->text()+"','"+ui->matricule->text() +"')";
 q.exec(req);



ensuite je voudrais récupérer les 2 champs dateEdit etdateEdit_2 pour calculer la durée
j'ai éssayé ceci mais ça plante :s:s

QDateTime T1;
T1= ui->dateEdit->textFromDateTime();



il m'affiche une érreur du type:
No matching function for call to 'QDateEdit::textFromDateTime'

Voila merci de répondre

14 réponses

Messages postés
21
Date d'inscription
lundi 2 août 2010
Statut
Membre
Dernière intervention
23 janvier 2013

C bon ça compile
Merci pour ton aide

      QDateTime T1=ui->dateEdit->dateTime();
         QDateTime T2=ui->dateEdit->dateTime();

         T1.daysTo(T2);



comme ça je récupère la durée en jours :)
Messages postés
14835
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
26 mars 2020
91
Hello,
Je ne comprend pas trop le lien entre ton histoire de calcul de "différence de date" (intervalle,quoi ) et ta bdd.
Dans tous les cas:
- QDateEdit::dateTime te permet de récupérer la date d'un QDateEdit
- QDateTime::secsTo() te permet de calculer le nombre de secondes entre 2 dates

@+
Buno, Admin CS
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Messages postés
21
Date d'inscription
lundi 2 août 2010
Statut
Membre
Dernière intervention
23 janvier 2013

Salut,

Au fait je voudrais insérer mes dates dans une base de donnée Access et puis calculer la durée(l'intervalle :))

J'ai refait ce code
QDateEdit::QDateTimeEdit T1;
     T1= ui->dateEdit->textFromDateTime();



mais il me réenvoie toujours la méme érreur

No matching function for call to 'QDateEdit::textFromDateTime'
Messages postés
14835
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
26 mars 2020
91
Pourquoi passer par un QDateTimeEdit?
De plus, la méthode textFromDateTime() est protected, donc non accessible.
Si tu veux avoir la string correspondant à la date courante du QDateEdit, il faut plutôt faire:
QString dateString = tonDateEdit.dateTime.toString(tonFormat)

La doc

@+
Buno, Admin CS
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Messages postés
21
Date d'inscription
lundi 2 août 2010
Statut
Membre
Dernière intervention
23 janvier 2013

Merci pour la réponse seulement il ne reconnait pas le(toString) après le dateTime,j'ai alors éssayé le code suivant qui a l'air de fonctionner
QString dateString1 = ui->dateEdit->date().toString();
      QString dateString2 = ui->dateEdit_2->date().toString();




Maintenant comment je fais pour calculer la différence entre les 2 dates

Merciii de répondre
Messages postés
14835
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
26 mars 2020
91
Maintenant comment je fais pour calculer la différence entre les 2 dates

Tu regardes ma 1ère réponse?


@+
Buno, Admin CS
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Messages postés
14835
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
26 mars 2020
91
Attention! Ne pas se baser sur les QString mais bien sur les QDateTime...


@+
Buno, Admin CS
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Messages postés
21
Date d'inscription
lundi 2 août 2010
Statut
Membre
Dernière intervention
23 janvier 2013

J'ai éssayé ce code mais ça marche pas:
QDateTime::secsTo(dateString1,dateString2);
Messages postés
14835
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
26 mars 2020
91
Avant d'essayer...si tu lisais la doc!
Normal que ça ne marche pas...Je te renvoie à la doc de la méthode
QDateTime::secsTo()

@+
Buno, Admin CS
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Messages postés
14835
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
26 mars 2020
91
Tu as en plus un exemple...tu devrais donc y arriver maintenant...


@+
Buno, Admin CS
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Messages postés
14835
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
26 mars 2020
91
N'oublie pas de cliquer sur "Réponse Acceptée" pour fermer le sujet ...


@+
Buno, Admin CS
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Messages postés
21
Date d'inscription
lundi 2 août 2010
Statut
Membre
Dernière intervention
23 janvier 2013

Stp je cherche à afficher la valeur de la durée dans un Qlineedit( ui->totalLineEdit)

j’essaie ce code ci mais il y'a un problème de conversion

int dur=  T1.daysTo(T2);


          ui->totalLineEdit->setText(dur);




Messages postés
14835
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
26 mars 2020
91
doc
Merci de lire la doc avant de poster...

@+
Buno, Admin CS
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Messages postés
21
Date d'inscription
lundi 2 août 2010
Statut
Membre
Dernière intervention
23 janvier 2013

Ok daccord,je vais y chercher avant merci en tt cas pour la durée