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:
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;
}
et l'affichage donne 1080 alors que je m'attendais à 3600 + 18*60 = 4680. L'heure n'a donc pas été prise en compte.
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.