boost::gregorian日期
#include <cstdio> #include <iostream> #include <sstream> #include <boost/date_time/gregorian/gregorian.hpp> using namespace std; using namespace boost; int main() { //使用构造函数创建date gregorian::date gdt0(2020, gregorian::Jan, 1); //使用day_clock创建date gregorian::date gdt1 = gregorian::day_clock::local_day(); gregorian::date gdt2 = gregorian::day_clock::universal_day(); gregorian::date gdt3(gregorian::not_a_date_time);//无效的日期 gregorian::date gdt4(gregorian::max_date_time);//最大日期 gregorian::date gdt5(gregorian::min_date_time);//最小日期 cout << gdt0 << endl; gregorian::day_iterator dayIter(gdt0); gregorian::month_iterator monthIter(gdt0); gregorian::year_iterator yearIter(gdt0); //日期长度 gregorian::days d(1);//天 gregorian::weeks w(1);//星期 gregorian::months m(1);//月 gregorian::years y(1);//年 gdt0 += d; gdt0 += w; gdt0 += m; gdt0 += y; cout << gdt0 << endl; gregorian::date::ymd_type ymd = gdt0.year_month_day(); cout << ymd.year << "-" << ymd.month << "-" << ymd.day << endl; cout << "星期几:" << gdt0.day_of_week() << endl; cout << "一年中第几天:" << gdt0.day_of_year() << endl; cout << "一年中的第几个星期:" << gdt0.week_number() << endl; cout << "当月最后一天的日期:" << gdt0.end_of_month() << endl; //和tm结构的转换 tm t = gregorian::to_tm(gdt0); cout << (t.tm_year + 1900) << "-" << (t.tm_mon + 1) << "-" << t.tm_mday << " " << t.tm_hour << ":" << t.tm_min << ":" << t.tm_sec << endl; return EXIT_SUCCESS; }