Mastersam
Messages postés116Date d'inscriptiondimanche 26 septembre 2004StatutMembreDernière intervention13 février 2008
-
28 juil. 2007 à 13:07
Mastersam
Messages postés116Date d'inscriptiondimanche 26 septembre 2004StatutMembreDernière intervention13 février 2008
-
24 août 2007 à 11:24
Bonjour j'ai rencontré un problème étrange,
J'utilise mktime pour convertir des dates lues dans un fichier, j'ai créé une fonction pour parser mon char* contenant date et heure sous forme 2007/07/28 13:01:00, jusque là pas de problème.
Mais il semblerais que mktime ait une limite haute pour les dates, ainsi à la lecture d'une ligne dont l'année est 2080 par exemple, mktime me retourne le code d'erreur -1. Le seul soucis c'est que je ne trouve pas, dans les manuels de C du net, un quelconque avertissement contre une date trop élevée lors de l'utilisation de mktime(); .
Est-ce que quelqu'un est au courant de cette spécification ?
cs_Matt67
Messages postés549Date d'inscriptionsamedi 6 septembre 2003StatutMembreDernière intervention 6 mars 20103 23 août 2007 à 22:33
Bonsoir,
Si tu fais un mktime de 19/01/2038 04:14:07, tu obtiens le nombre de secondes depuis le 01/01/1970 00:00:00 soit 2147483647 secondes donc 2^31 - 1.
Et qu'est que cela fait si on ajoute 1 à un entier signé égal à 2147483647 ?
Fais un test et tu comprendra ...
Mastersam
Messages postés116Date d'inscriptiondimanche 26 septembre 2004StatutMembreDernière intervention13 février 2008 24 août 2007 à 11:24
Salut Matt, ok j'ai compris que c'était dû à la capacité maxi des entiers.
Existe-il une librairie C multiplatforme qui corrige ce problème ? Car de plus, avec time.h j'ai encore un problème de GMT ou d'heure d'été quand je converti un UTC en heure locale, en ce moment il me manque encore une heure et je ne sais pas trop d'ou celà provient.