c++ - 如何将 C++ time_t 对象设置为纪元?
问题描述
这个问题类似于以下内容:
但我在那里没有我的答案。
如果您想获取当前日期/时间,您可以在以下标准示例中调用time(0)
或喜欢:time(NULL)
// current date/time based on current system
time_t now = time(0);
我想定义一个函数,它将返回一个 time_t 并允许客户端在发生错误时传递一个可选的默认返回值。此外,我想在那个“默认”参数上设置一个默认值。这在我拥有的库中提供了对称性,我拥有跨多种语言的一对一计数器部分,因此我不打算重新设计所有这些。
我的想法是将默认返回设置为纪元。然后,客户理论上可以轻松地评估该回报,并确定一个时期的回归很可能(如果不是总是)表明它是无效的。我可以想到一些替代方案,但没有什么干净的,这也符合我现有的模式。
是否有一种简短而甜蜜的方法可以使我的函数签名具有该对象的默认值等于纪元?例如
...myfunc(...., const time_t &defVal=time(0) );
如果0
指的是纪元而不是当前日期/时间,那将是完美的!
解决方案
该函数std::time()
将自纪元以来的秒数返回为std::time_t
. 因此,要在 epoch 设置为零后找到零秒std::time_t
:
std::time_t t = 0;
因此,您可以执行以下操作:
void myfunc(const std::time_t& defVal = 0)
推荐阅读
- tensorflow - Tensorflow 推理运行时间在第一个数据点上很高,在后续数据点上减少
- android - 如何在没有 OnNext 的情况下使用 RxJava 引发异常
- xcode - 如何从我的项目中删除多个 git 源控件?
- qt5 - 如何在另一个 QTabWidget 选项卡上更新 QTextEdit?
- authentication - OAuth 2.0 是否应该用于身份验证超时?
- solr - solr:使用带有 edismax 的 MLT,有没有办法获取有趣的术语然后传递给 edismax 常规查询?
- python - 有没有一种方法可以计算特定列中特定单词每天出现的次数?
- python - 坚持创建骰子滚轮
- c# - EF Core - 基于租户的 AutoInc 字段
- java - 使用 JDBC 将数据添加到 postgreSQL 中的表的正确方法?