M4E

Précédent   M4E > Discussions > HORS SUJET / OFF TOPIC

HORS SUJET / OFF TOPIC Dans cette section vous pouvez parler de n'importe quoi non-relié au monde de la moto. In this section you can discuss anything that's not motorcycle related.

Réponse
 
LinkBack Outils de la discussion Modes d'affichage
Vieux 04/02/2007, 14h41   #1 (permalink)
Administrator
 
Avatar de Mahmoud
 
Date d'inscription: novembre 2002
Messages: 6 724
Pouvoir de réputation: 50
Reputation: 247 Mahmoud has a spectacular aura aboutMahmoud has a spectacular aura aboutMahmoud has a spectacular aura about

Moto: CBR 929
 
Par défaut C++ or die...

Bon... ecoeuré de chercher le trouble...

voici mon code... mais il me retourne 0. WHY !??!?

Code:
// Calcule le temps à partir du depart et l'arrivée
int calculerTemps(string tempsDebut, string tempsFin)
{    
    struct tm infoTempsDepart = {0}, 
              infoTempsArrivee = {0};

    // Convertir chaine tempsDebut en format struct tm
    // separré en heures, minutes, et secondes.
    infoTempsDepart.tm_hour = atoi(tempsDebut.substr(0,2).c_str());
    infoTempsDepart.tm_min = atoi(tempsDebut.substr(3,2).c_str());
    infoTempsDepart.tm_sec = atoi(tempsDebut.substr(6,2).c_str()); 
    
    // Convertir chaine tempsFin en format struct tm
    // separré en heures, minutes, et secondes.
    infoTempsArrivee.tm_hour = atoi(tempsFin.substr(0,2).c_str());
    infoTempsArrivee.tm_min = atoi(tempsFin.substr(3,2).c_str());
    infoTempsArrivee.tm_sec = atoi(tempsFin.substr(6,2).c_str()); 
    
    // Retourner la difference entre les 2 temps de type time_t
    return (int)difftime(mktime(&infoTempsArrivee),mktime(&infoTempsDepart));

} // calculerTemps()
ce sont les mktime() qui me retourne 0 donc difftime() retourne 0 aussi...
pourtant si je cout infoTempsArrivee.tm_hour (par exemple) il contient ce qu'il est supposé contenir... mes struct ne sont pas vides.

Mais j'arrive pas a comprendre pourquoi mktime() me donne 0

Les données entrées sont en format hh:mm:ss
__________________
Mahmoud est déconnecté   Réponse avec citation
Vieux 04/02/2007, 15h41   #2 (permalink)
World speed record
 
Avatar de Born2bWild
 
Date d'inscription: juillet 2006
Localisation: 347
Messages: 2 772
Pouvoir de réputation: 6
Reputation: 248 Born2bWild has a spectacular aura aboutBorn2bWild has a spectacular aura aboutBorn2bWild has a spectacular aura about

Moto: CBR929
 
Par défaut

Tes structures ne sont pas convenablement initialisés...

Rajoute ces quatres lignes là au début de ta fonction (après la définition de tes variables):

time_t ltime;
time( &ltime );
gmtime_s( &infoTempsDepart, &ltime );
gmtime_s( &infoTempsArrivee, &ltime );

Born2bWild est déconnecté   Réponse avec citation
Vieux 04/02/2007, 16h10   #3 (permalink)
Administrator
 
Avatar de Mahmoud
 
Date d'inscription: novembre 2002
Messages: 6 724
Pouvoir de réputation: 50
Reputation: 247 Mahmoud has a spectacular aura aboutMahmoud has a spectacular aura aboutMahmoud has a spectacular aura about

Moto: CBR 929
 
Par défaut

Ca marche pas...
'gmtime_s' undeclared (first use this function)

pourtant j'ai time.h d'inclu

merci pour ton aide !
__________________
Mahmoud est déconnecté   Réponse avec citation
Vieux 04/02/2007, 16h19   #4 (permalink)
World speed record
 
Avatar de Born2bWild
 
Date d'inscription: juillet 2006
Localisation: 347
Messages: 2 772
Pouvoir de réputation: 6
Reputation: 248 Born2bWild has a spectacular aura aboutBorn2bWild has a spectacular aura aboutBorn2bWild has a spectacular aura about

Moto: CBR929
 
Par défaut

De mon côté ça complie bien (un project MFC Visual Studio 2005)

Essais en incluant ça avant ta fonction : #define _USE_32BIT_TIME_T.

Sinon, essais ça, ça devrait passer:

__int64 ltime;
_time64( &ltime );
_gmtime64_s( &infoTempsDepart, &ltime );
_gmtime64_s( &infoTempsArrivee, &ltime );

Il reste que ton problème est l'initialisation de ta structure qui n'est pas complète.
Born2bWild est déconnecté   Réponse avec citation
Vieux 04/02/2007, 16h27   #5 (permalink)
Administrator
 
Avatar de Mahmoud
 
Date d'inscription: novembre 2002
Messages: 6 724
Pouvoir de réputation: 50
Reputation: 247 Mahmoud has a spectacular aura aboutMahmoud has a spectacular aura aboutMahmoud has a spectacular aura about

Moto: CBR 929
 
Par défaut

Citation:
Envoyé par OnTheEdge
De mon côté ça complie bien (un project MFC Visual Studio 2005)

Essais en incluant ça avant ta fonction : #define _USE_32BIT_TIME_T.

Sinon, j'sais pas si _gmtime64_s te donnera la même erreur?

__int64 ltime;
_time64( &ltime );
_gmtime64_s( &infoTempsDepart, &ltime );
_gmtime64_s( &infoTempsArrivee, &ltime );

Il reste que ton problème est l'initialisation de ta structure qui n'est pas complète.
Oui la meme erreur...

Comment derais-je initialiser ma structure?
__________________
Mahmoud est déconnecté   Réponse avec citation
Vieux 04/02/2007, 16h36   #6 (permalink)
World speed record
 
Avatar de Born2bWild
 
Date d'inscription: juillet 2006
Localisation: 347
Messages: 2 772
Pouvoir de réputation: 6
Reputation: 248 Born2bWild has a spectacular aura aboutBorn2bWild has a spectacular aura aboutBorn2bWild has a spectacular aura about

Moto: CBR929
 
Par défaut

Après l'appel de _gmtime64_s, dans la structure j'ai:

tm_sec 33
tm_min 35
tm_hour 20
tm_mday 4
tm_mon 1
tm_year 107
tm_wday 0
tm_yday 34
tm_isdst 0

#include <ctime> peut-être?

Pourtant gmtime() est bel et bien défini dans <time> ...
Born2bWild est déconnecté   Réponse avec citation
Vieux 04/02/2007, 16h48   #7 (permalink)
Administrator
 
Avatar de Mahmoud
 
Date d'inscription: novembre 2002
Messages: 6 724
Pouvoir de réputation: 50
Reputation: 247 Mahmoud has a spectacular aura aboutMahmoud has a spectacular aura aboutMahmoud has a spectacular aura about

Moto: CBR 929
 
Par défaut

Citation:
Envoyé par OnTheEdge
Après l'appel de _gmtime64_s, dans la structure j'ai:

tm_sec 33
tm_min 35
tm_hour 20
tm_mday 4
tm_mon 1
tm_year 107
tm_wday 0
tm_yday 34
tm_isdst 0

#include <ctime> peut-être?

Pourtant gmtime() est bel et bien défini dans <time> ...
Oui gmtime() est defini.. mais gmtime_s on dirait que non...

Inclure ctime n'a rien changé. Mais t'as raison de dire que le prob c'est mon initialization des struct.

J'ai pris tes données et j'ai initialisé mes struct comme ca:
{0,0,0,1,1,107,0,34,0}
laissant mes champs hour, min et sec a 0.

Et maintenant ca marche...
__________________
Mahmoud est déconnecté   Réponse avec citation
Vieux 04/02/2007, 16h48   #8 (permalink)
World speed record
 
Avatar de Born2bWild
 
Date d'inscription: juillet 2006
Localisation: 347
Messages: 2 772
Pouvoir de réputation: 6
Reputation: 248 Born2bWild has a spectacular aura aboutBorn2bWild has a spectacular aura aboutBorn2bWild has a spectacular aura about

Moto: CBR929
 
Par défaut

Cool
Born2bWild est déconnecté   Réponse avec citation
Vieux 04/02/2007, 16h56   #9 (permalink)
Administrator
 
Avatar de Mahmoud
 
Date d'inscription: novembre 2002
Messages: 6 724
Pouvoir de réputation: 50
Reputation: 247 Mahmoud has a spectacular aura aboutMahmoud has a spectacular aura aboutMahmoud has a spectacular aura about

Moto: CBR 929
 
Par défaut

Ah oui... j'oubliais... MERCI !!!!!!!!!



Je dois avoir passé 2 heures a gosser avec ca...... avoir su que c'etait l'initialisation des struct...

merci pour ton aide
__________________
Mahmoud est déconnecté   Réponse avec citation
Vieux 04/02/2007, 17h03   #10 (permalink)
World speed record
 
Avatar de Born2bWild
 
Date d'inscription: juillet 2006
Localisation: 347
Messages: 2 772
Pouvoir de réputation: 6
Reputation: 248 Born2bWild has a spectacular aura aboutBorn2bWild has a spectacular aura aboutBorn2bWild has a spectacular aura about

Moto: CBR929
 
Par défaut

Fait plaisir
Born2bWild est déconnecté   Réponse avec citation
Réponse

Liens sociaux

Outils de la discussion
Modes d'affichage

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

BB code is oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui




Fuseau horaire GMT -4. Il est actuellement 14h05.


Édité par : vBulletin® version 3.8.1
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.1.0 Tous droits réservés.
Version française #15 par l'association vBulletin francophone
M4E