Mktime retourne "-1"

Résolu
perig Messages postés 358 Date d'inscription vendredi 1 novembre 2002 Statut Membre Dernière intervention 5 septembre 2006 - 13 juil. 2006 à 14:32
MuPuF Messages postés 536 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 22 août 2008 - 14 juil. 2006 à 19:02
Bonjour,



<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /?>
 




Voila j’utilise la fonction mktime mais celle-ci me retourne constamment -1 et je ne vois pas mon erreur



 




Voici mon code :



 






m.tm_mon=(INT)(GetDlgItemInt(IDC_MM)-1);
// 07-1 06







m.tm_mday=(INT)GetDlgItemInt(IDC_DD);
// = 13







m.tm_year=(INT)(2000+GetDlgItemInt(IDC_YY));
// 2000 + 06 2006





m.tm_hour=(INT)GetDlgItemInt(IDC_HO);
// = 14







m.tm_min=(INT)GetDlgItemInt(IDC_MI);
// = 30







m.tm_sec=(INT)GetDlgItemInt(IDC_SE);
// = 17







m.tm_isdst=0;







this
->m_Time=mktime(&m);







 






Je suis sous C++.net avec MFC





Les GetDlgItemInt récupérent les valeurs des différents champs de mon interface (un pour chaque composante de la date)





J’ai vérifié en  mode pas à pas, "m" est bien rempli avec les bonnes valeurs, c’est donc a l’appel de la fonction mktime que ca merdouille.






 






Voyez-vous le problème ?






 






Merci






 







 






Ps : Je ne sais pas à quoi sert tm_isdst, je l’ai mis à 0. Mon problème vient peut-être de la, que faut il y mettre ? Je ne comprends pas la doc !





---Perig---
Pour vous servir 
Et parfois en galère 
Souvent même
A voir également:

10 réponses

katsankat Messages postés 571 Date d'inscription vendredi 30 décembre 2005 Statut Membre Dernière intervention 12 juillet 2012 3
13 juil. 2006 à 16:29
3
perig Messages postés 358 Date d'inscription vendredi 1 novembre 2002 Statut Membre Dernière intervention 5 septembre 2006
13 juil. 2006 à 16:48
C’est bon merci, il faut remplacer <?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /?>


m.tm_year=(INT)(2000+GetDlgItemInt(IDC_YY));


Par


m.tm_year=(INT)(2000+GetDlgItemInt(IDC_YY)-1900);dans ma doc ils disent pas qu'il faut coder la date en référence à 1900 (je pensais justement que la fonction mktime allait le faire elle meme)

---Perig---
Pour vous servir 
Et parfois en galère 
Souvent même
3
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
13 juil. 2006 à 14:36
GetSystemTime
GetLocalTime
<time.h> n'a rien a faire dans du code Windows.

ciao...
BruNews, MVP VC++
0
perig Messages postés 358 Date d'inscription vendredi 1 novembre 2002 Statut Membre Dernière intervention 5 septembre 2006
13 juil. 2006 à 14:46
Oups ... J'ai oublié de stipuler que je cherche a remplir un time_t afin de l'utiliser avec une fonction fournie par un sdk (une lib non modifiable)
Je cherche donc a mélanger du time.h avec mon code!
---Perig---
Pour vous servir 
Et parfois en galère 
Souvent même
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
MNEMONIC Messages postés 59 Date d'inscription dimanche 19 décembre 2004 Statut Membre Dernière intervention 1 septembre 2006
13 juil. 2006 à 15:16
J'ai eu le même genre de problème sous Unix, et j'ai été obligé de compléter le reste de la structure :
    m.tm_wday = 0;
    m.tm_yday = 0;
0
perig Messages postés 358 Date d'inscription vendredi 1 novembre 2002 Statut Membre Dernière intervention 5 septembre 2006
13 juil. 2006 à 15:37
harf, même en ajoutant 


m.tm_wday = 0;
m.tm_yday = 0;

Ca ne marche pas pour moi :(

---Perig---
Pour vous servir 
Et parfois en galère 
Souvent même
0
katsankat Messages postés 571 Date d'inscription vendredi 30 décembre 2005 Statut Membre Dernière intervention 12 juillet 2012 3
13 juil. 2006 à 16:19
 this->m_Time=mktime(m);
0
perig Messages postés 358 Date d'inscription vendredi 1 novembre 2002 Statut Membre Dernière intervention 5 septembre 2006
13 juil. 2006 à 16:27
Nop,
 il me dit qu'il faut que le param soit un pointeur sur un "tm" donc il me faut bien une adresse (donc &m) 
"m" est définit comme suit :
struct tm m;

---Perig---
Pour vous servir 
Et parfois en galère 
Souvent même
0
katsankat Messages postés 571 Date d'inscription vendredi 30 décembre 2005 Statut Membre Dernière intervention 12 juillet 2012 3
13 juil. 2006 à 16:53
 

2000 + x - 1900 .... c'est x +100
0
MuPuF Messages postés 536 Date d'inscription mercredi 27 avril 2005 Statut Membre Dernière intervention 22 août 2008
14 juil. 2006 à 19:02
ralala le mathématicien compulsif lol, tjs vouloir tout simplifier
Le compilateur fera la simplification, donc autant que ça reste clair pour nous (ça me parle pas trop x+100).
Vila, bonne soirée
0
Rejoignez-nous