bonjour,
j'ai un soucis avec la fonction mktime de la bibliothèque ctime: je voudrais convertir une durée en heures, minutes, secondes en une donnée de type time_t. Petit programme de test:
et l'affichage donne 1080 alors que je m'attendais à 3600 + 18*60 = 4680. L'heure n'a donc pas été prise en compte.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 #include <iostream> // std::cin, std::cout#include <iomanip> // std::get_time #include <ctime> // struct std::tm int main() { struct tm* tm; time_t temps = 0; tm = gmtime(&temps); // 01-01-1970 00:00:00 tm->tm_hour = 1; tm->tm_min = 18; // 01-01-1970 01:18:00 temps = mktime(tm); std::cout << temps <<std:: endl; return 0; }
Pourtant la structure tm me semble correcte à chaque fois (programme testé sous gcc et msvc2013).
Pouvez-vous m'indiquer quelle erreur d'interprétation j'ai pu faire?
Merci.
Partager