我正在对时间进行大量计算,通过添加秒来构建相对于其他时间对象的时间对象。该代码应该在嵌入式设备和服务器上运行。大多数文档都说time_t
它是某种算术类型,通常存储自纪元以来的时间。假设time_t
从某事开始存储几秒钟有多安全?如果我们可以假设,那么我们可以只使用加法和减法而不是localtime
,mktime
和difftime
。
到目前为止,我已经通过使用 a 解决了这个问题,表示假设使用秒constexpr bool time_tUsesSeconds
是否安全。time_t
如果假设time_t
在几秒钟内是不可移植的,有没有办法自动初始化该常量?
time_t timeByAddingSeconds(time_t theTime, int timeIntervalSeconds) {
if (Time_tUsesSeconds){
return theTime + timeIntervalSeconds;
} else {
tm timeComponents = *localtime(&theTime);
timeComponents.tm_sec += timeIntervalSeconds;
return mktime(&timeComponents);
}
}