2 つの boost::gregorian 日付間の時間を計算しようとしています。現在、私は単に2つの日付の差を取り、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(...)
boost::gregorian::days ctor は date_duration を取ることができますが、月と年の date_duration から同様の表現を作成する方法が見つかりません。私が読んで見たところ、date_duration には 2 つの日付間の間隔の日数のみが含まれているようです。私が望んでいたのは、正規化されていないメンバーが何年も、何ヶ月も、何日も続くことでした。たとえば、上記の日付の場合、date_duration にはyears = 5
、months = 65
、 のようなフィールドがありdays = 1992
、各フィールドはその特定の時間粒度を使用した合計時間を表します。現状では、日付間の日数として date_duration にアクセスする方法しかないようです (dd.days()
)。何か不足していますか?boost::gregorian または他の日付/時刻ライブラリのいずれかを使用してこれを達成する方法はありますか?
ありがとう