2017-02-03 5 views
0

Здравствуйте, я хотел бы вернуться во времени, используя boost::Date_time. Например, установите дату в одну из 10 дней назад. Я пробовал использовать day_iterator, но пока не повезло. Вот моя попытка:Boost Дата возврата во времени

boost::gregorian::date dateGenerator(int howManyDays) 
{ 
    boost::posix_time::ptime now = boost::posix_time::second_clock::local_time(); 

    boost::gregorian::date date(now.date()); 
    boost::gregorian::day_iterator dayIterator(data,-1); 

    for (; howManyDays != 0; ++dayIterator) 
    { 
     howManyDays--; 
    } 
    return date; 

} 

Спасибо за помощь

+0

Здравствуйте, повышение :: дата_время не достаточно, чтобы идти вовремя, для этого вам понадобится полностью работающая машина времени. Извините, не смог удержаться. Теперь по теме: какова ваша фактическая цель? Вам просто нужно вычесть одну дату из другой и получить результат, который был в прошлом? Также как насчет использования 'std :: chrono'? – SingerOfTheFall

+0

Ваш код не работает, потому что 'day_iterator' не изменяет исходную дату, он создает новые объекты даты. – flyx

ответ

1

Вы можете вычесть date duration из даты, используя - operator:

date_duration dd(howManyDays); 
date d2 = date - dd; 
return d2; 
+0

Работает как шарм. Большое спасибо мату – Dargor66