Russian Qt Forum
Октябрь 02, 2024, 13:22 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QDateTime и time_t: не корректно работает код  (Прочитано 5457 раз)
Fregloin
Супер
******
Offline Offline

Сообщений: 1025


Просмотр профиля
« : Июль 08, 2011, 12:37 »

Нужно вычислить среднее время между двумя данными в формате time_t.
Раньше под qnx я делал так:
Код:
time_t	middle_time = (time_t) ((begin_t+end_t)/2.0);
t1 = localtime(&middle_time);
sprintf(time_buff,time_format_str,t1->tm_hour,t1->tm_min,t1->tm_sec);
И все работает корректно, отображается среднее время между началом (begin_t) и концом(end_t) интервала.
Теперь код переношу в Qt, задействовал для удобства QDateTime.
Код:
dt.setTime_t(((time_t)(fhandler->begin_time()+fhandler->end_time())/2.0));
ui->middleLabel->setText(dt.toString(timeFormatStr));
Значение времени выводится совершенно иное и не похожее на то, что должно быть.
Есть ли способ с помощью QDateTime вычислить среднее время между begin_time и end_time, при условии что они имеют тип time_t?
Записан
LisandreL
Птица говорун
*****
Offline Offline

Сообщений: 984


Надо улыбаться


Просмотр профиля
« Ответ #1 : Июль 08, 2011, 13:18 »

Код
C++ (Qt)
   QDateTime date1 = QDateTime::fromString( "2011/07/08 12:59:56.030", "yyyy/MM/dd hh:mm:ss.zzz" );
   QDateTime date2 = QDateTime::fromString( "2011/07/06 12:59:56.030", "yyyy/MM/dd hh:mm:ss.zzz" );
   QDateTime date3 = QDateTime::fromTime_t( ( date1.toTime_t() + date2.toTime_t() ) / 2 );
   qDebug() << date3.toString( date3.toString( "yyyy/MM/dd hh:mm:ss.zzz" ) );
Всё работает, ну разве что милисекунды теряются, но в time_t их и нет.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.18 секунд. Запросов: 22.