boost :: gregorian :: date_duration преобразование из дней в месяцы и дней в годы

Я пытаюсь вычислить время между двумя датами boost :: gregorian. В настоящее время я просто использую разницу между двумя датами, давая мне date_duration для работы:

boost::gregorian::date rhs(2000, 1, 1);
boost::gregorian::date lhs(2005, 6, 15);
boost::gregorian::date_duration dd = lhs - rhs;

boost::gregorian::days daysOld(dd);

boost::gregorian::months monthsOld(...) // This is where I'm stumped

boost::gregorian::years yearsOld(...)

Ctor boost :: gregorian :: days может принимать date_duration, но я не могу найти способ создать аналогичное представление из date_duration для месяцев и лет. Из того, что я прочитал и увидел, кажется, что date_duration содержит только количество дней в интервале между двумя датами. Я надеялся, что это даст мне ненормализованных членов на годы, месяцы и дни. Например, с указанными выше датами, я ожидаю, что date_duration будет иметь поля, которые дают что-то вроде years = 5, months = 65, а также days = 1992 где каждое поле представляет общее количество времени, используя эту конкретную гранулярность времени. В существующем виде, по-видимому, существует только способ доступа к date_duration в виде количества дней между датами (путем вызова dd.days()). Я что-то пропустил? Есть ли способ сделать это, используя boost :: gregorian или одну из других библиотек даты / времени?

Спасибо

5

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …