成员day_number()函数返回 this。
boost::gregorian::date d(2014, 10, 18);
uint32_t number = d.day_number();
Run Code Online (Sandbox Code Playgroud)
反之可得:
gregorian_calendar::ymd_type ymd = gregorian_calendar::from_day_number(dn);
d = { ymd.year, ymd.month, ymd.day };
Run Code Online (Sandbox Code Playgroud)
你当然可以使用Boost Serialization来序列化,它会使用最紧凑的表示。请参阅http://www.boost.org/doc/libs/1_56_0/doc/html/date_time/serialization.html
查看完整演示:Live On Coliru
#include <boost/date_time/gregorian/greg_date.hpp>
#include <boost/date_time/gregorian/gregorian_io.hpp>
#include <iostream>
using namespace boost::gregorian;
int main()
{
date d(2014, 10, 17);
static_assert(sizeof(d) == sizeof(int32_t), "truth");
std::cout << d << "\n";
uint32_t dn = d.day_number();
dn += 1;
gregorian_calendar::ymd_type ymd = gregorian_calendar::from_day_number(dn);
d = { ymd.year, ymd.month, ymd.day };
std::cout << d << "\n";
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1249 次 |
| 最近记录: |