Привет у меня есть две строки:
entertime "2014-03-06T09:35:36Z"exittime "2014-03-06T09:38:36Z"
Я хочу иметь возможность вернуть разницу, которая в этом случае должна возвращать 3 минуты.
Мой метод выглядит так:
boost::gregorian::date returnTime(std::string entertime, std::string exittime){
boost::gregorian::date denter = boost::gregorian::from_string(entertime);
boost::gregorian::date dexit = boost::gregorian::from_string(entertime);
boost::gregorian::date dresult = dexit-denter;
Есть ли способ получить эту разницу во времени?
Заранее спасибо!
К сожалению, для вашей конкретной временной метки нет прямого конвертера. Если вы можете удалить все разделители и сформировать строку, соответствующую спецификации ISO, то вы можете сделать следующее:
auto ts1 = boost::posix_time::from_iso_string("20140306T093536Z");
auto ts2 = boost::posix_time::from_iso_string("20140306T093836Z");
std::cout << (ts2 - ts1) << std::endl;
Это должно вывести 00:03:00
как вы ожидаете. ПРИМЕЧАНИЕ Типы здесь (ts1
& ts2
являются boost::posix_time::ptime
и дельта является boost::posix_time::time_duration
)
Других решений пока нет …