boost::gregorian::date を Plain old データ型に変換する簡単な方法はありますか? C DLL インターフェイスを介して渡すことができる必要があります。年/月/日のコンポーネントに前後に変換したくありません。
質問する
280 次
2 に答える
1
#include <boost/date_time/gregorian/greg_date.hpp>
#include <boost/date_time/gregorian/gregorian_io.hpp>
#include <iostream>
int main()
{
boost::gregorian::date date1(2013, boost::date_time::Feb, 25);
std::cout << date1 << std::endl;
boost::gregorian::date::date_int_type pod = date1.day_number();
std::cout << pod << std::endl;
boost::gregorian::date date2(pod);
std::cout << date2 << std::endl;
}
于 2013-02-26T13:43:09.960 に答える
1
エポック日付を選択してdate_duration
から、「現在の」日付とエポックdays()
の間の を取得し、期間を呼び出して を取得できますlong
。long
C DLL を介して渡し、反対側date_duration
で同じ日数で新しいものを作成し、それをエポックに追加すると、元の日付に戻るはずです。
これをいくつかの関数で簡単にラップできるはずです。
long days_since_epoch_from_date(date)
date date_from_days_since_epoch(long)
于 2013-02-26T13:32:57.103 に答える