Вы, вероятно, пойманы тем фактом, что boost::gregorian::days
перегружает operator/
. Сначала преобразуйте в целое число, используя days()
, а затем разделите на значение с плавающей точкой, чтобы получить деление с плавающей точкой.
#include <iostream>
#include <boost/date_time.hpp>
int main()
{
boost::gregorian::date be(2000, 1, 1), bd(1950, 1, 1);
boost::gregorian::days t = be - bd;
std::cout << "days are: " << t << '\n'
<< "days/365 = " << t.days()/365.0 << '\n';
}
Обратите внимание на результат: ваш результат не равен количеству лет, потому что год не 365,00 дней.