日期時間分離處理:
{31,28,31,30,31,30,31,31,30,31,30,31},閏年 2 月 29 天((y%4==0&&y%100!=0)||y%400==0)。month += n; year += (month-1)/12; month = (month-1)%12+1;,日數超過該月最大日則截斷。using namespace std::chrono;
auto tp = sys_days{2015y/3/30} + 23h + 20min + 20s;
tp -= months(1); // 減一個月
tp += hours(2); // 加兩小時
auto dp = floor(tp);
auto ymd = year_month_day{dp};
auto time = make_time(tp - dp);
新項目直接用 C++20