Продолжительность получения - PullRequest
1 голос
/ 16 ноября 2011

Я пытаюсь измерить продолжительность чего-либо.при его запуске я вызываю start_time = time (NULL);когда он заканчивается:

time_t a_time = time(NULL) - start_time;
struct tm * ts = localtime(&a_time);
char time_buff[32];
memset (time_buff,0,32);
sprintf (time_buff, "Duration: %02d:%02d:%02d", ts->tm_hour, ts->tm_min, ts->tm_sec);

Проблема в том, что ts-> tm_hour всегда равен 2.

Пожалуйста, сообщите.Спасибо, Наум

Ответы [ 3 ]

2 голосов
/ 16 ноября 2011

Функция localtime преобразует время в полную дату и время. Лучше конвертировать его в дни, часы и минуты самостоятельно, используя деления и операции по модулю.

1 голос
/ 16 ноября 2011

Почему бы не использовать функцию, которая возвращает количество прошедших миллисекунд (часы или gettimeofday), а затем преобразует их в часы / минуты / секунды?

1 голос
/ 16 ноября 2011

живете ли вы в стране, где время на 2 часа меньше времени UTC?

замените ваш звонок на localtime() (который находится в вашем текущем часовом поясе) на звонок на gmtime().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...