2012-12-07 2 views
1

У меня есть два UTC метки времени (время, 1.1.1970)новообращенный в струнной импульс

Я хочу, чтобы показать разницу между ними, как струнный% H:% M:% S, например. 13:34:12

В настоящее время я получил это далеко

time_facet *facet = new time_facet("%H:%M:%S"); 
cout.imbue(locale(cout.getloc(), facet)); 

ptime now = boost::date_time::not_a_date_time; 
now = boost::posix_time::microsec_clock::universal_time(); 

ptime timerEnd = from_time_t(timestamp); 
boost::posix_time::time_period tp(now, timerEnd); 

//what now? 

ответ

3

что-то вроде этого будет делать эту работу, вам не нужен TIME_PERIOD

#include <iostream> 
#include <boost/date_time/posix_time/posix_time.hpp> 

namespace pt = boost::posix_time; 

int main() { 
    //format for ptime 
    pt::time_facet *facet = new pt::time_facet("%H:%M:%S"); 
    //format for time_duration 
    facet->time_duration_format("%H:%M"); 

    std::cout.imbue(std::locale(std::cout.getloc(), facet)); 

    time_t timestamp1 = 79387320; 
    time_t timestamp2 = 79377320; 
    pt::time_duration td = pt::from_time_t(timestamp1) - pt::from_time_t(timestamp2); 

    std::cout << td << std::endl;  
    return 0; 
} 
+0

Awsome Thankyou – Middy

+0

Блин ... ответ неправильный ... Я должен был проверить pt :: time_facet * facet = new pt :: time_facet ("% H:% M"); также выводит «02:46:40» – Middy

+0

Вправо, конструктор устанавливает только формат для ptime, а не для time_duration, я отредактировал ответ – kinnou02

Смежные вопросы