1

Boost のドキュメントには次のように書かれています。. リンクからこれを見つけました:http://www.boost.org/doc/libs/1_56_0/doc/html/date_time/gregorian.html

この 32 ビット整数はどのように計算されますか? エポックからの日数ですか(JodaがJavaで行うように)?

4

1 に答える 1

1

ドキュメントによると、現在の実装では、1400-Jan-01 から 9999-Dec-31 の範囲の日付がサポートされています。

コードを分析すると、クラス boost::gregorian::date は日付を days_ という名前の uint32_t 整数として格納します。1400-Jan-01 の場合、この整数の値は 2232400 です。日付を 1 日増やすとは、この整数が 1 単位増えることを意味します。したがって、2 つの日付間の日数の差は、整数を減算するだけで計算できます。

于 2016-09-27T21:40:22.767 に答える