如何将 chrono::year_month_day 添加到 chrono::sys_seconds
How to add chrono::year_month_day to chrono::sys_seconds
我持有持续时间 year_month_day。有没有一种简单的方法可以将 year_month_day 持续时间添加到 time_point,例如 sys_seconds?
sys_seconds date1 = {};
sys_seconds dat2 = {};
year_month_day calDuration;
date1 = date2 + calDuration; //error: no match for ‘operator+’
这是 chrono 在编译时为您捕获逻辑错误。添加 date2 + calDuration
类似于添加明天 + 今天。它只是没有意义。这就是为什么它是一个编译时错误。
您的意思可能是您有持续时间 years
、months
和 days
。这与名称相似的类型 year
、month
和 day
不同。复数形式是 chrono::duration
s,就像 minutes
和 nanoseconds
。 days
是 24h
。 years
和 months
是民历中这些单位的 平均 长度。
相反,单数形式 year
、month
和 day
是为民历中的某一天命名的日历成分,例如2020y
、December
和 18d
。正是这些单数形式构成了 year_month_day
,例如2020y/December/18d
.
请参阅 以深入了解 month
和 months
之间的区别。
有多种方法可以将单位 years
和 months
添加到 time_point
。有关该主题的深入探讨,请参阅 。
我持有持续时间 year_month_day。有没有一种简单的方法可以将 year_month_day 持续时间添加到 time_point,例如 sys_seconds?
sys_seconds date1 = {};
sys_seconds dat2 = {};
year_month_day calDuration;
date1 = date2 + calDuration; //error: no match for ‘operator+’
这是 chrono 在编译时为您捕获逻辑错误。添加 date2 + calDuration
类似于添加明天 + 今天。它只是没有意义。这就是为什么它是一个编译时错误。
您的意思可能是您有持续时间 years
、months
和 days
。这与名称相似的类型 year
、month
和 day
不同。复数形式是 chrono::duration
s,就像 minutes
和 nanoseconds
。 days
是 24h
。 years
和 months
是民历中这些单位的 平均 长度。
相反,单数形式 year
、month
和 day
是为民历中的某一天命名的日历成分,例如2020y
、December
和 18d
。正是这些单数形式构成了 year_month_day
,例如2020y/December/18d
.
请参阅 month
和 months
之间的区别。
有多种方法可以将单位 years
和 months
添加到 time_point
。有关该主题的深入探讨,请参阅