- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我的time.h
对tm
有如下定义:
struct tm {
int tm_sec; /* seconds after the minute [0-60] */
int tm_min; /* minutes after the hour [0-59] */
int tm_hour; /* hours since midnight [0-23] */
...
}
我刚刚注意到他们将 tm_sec
记录在 0-60 之间。我一直认为它的范围是 0-59,就像 tm_min
一样。我当然从没见过时钟读数是 10:37:60...
您认为这只是 90 年代源自伯克利的文件遗留下来的一个文档错误吗?
还是有一些我不知道的更微妙的事情发生?
最佳答案
Leap seconds原因是什么:
A leap second is a plus or minus one-second adjustment to the Coordinated Universal Time (UTC) time scale that keeps it close to mean solar time.
When a positive leap second is added at 23:59:60 UTC, it delays the start of the following UTC day (at 00:00:00 UTC) by one second, effectively slowing the UTC clock.
关于c++ - 为什么 tm_sec 在 time.h 中的范围是 0-60 而不是 0-59?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/765778/
根据cplusplus.com , tm 结构中的 tm_sec 字段在 C90 中接受从 0 到 61 的值,在 C99 和更高版本中接受从 0 到 60 的值。 我知道 60 可以用来表示闰秒,但
我的time.h对tm有如下定义: struct tm { int tm_sec; /* seconds after the minute [0-60] */ int tm_m
我是一名优秀的程序员,十分优秀!