English 中文(简体)
time.h的替代品:在ANSI-C或C99中,对于值(年份小于1970年和大于2038年),使用time_t。
原标题:
  • 时间:2008-12-01 16:05:23
  •  标签:

我在 ANSI C 中有一段代码,使用 time.h 库和 time_h 结构来计算两个给定日期之间的间隔(除了其他与日期相关的计算)。这样做很好,但是限制了我的代码在 1970 年至 2038 年之间输入。我现在想让我的代码更通用。

有没有一个常见的C库(符合ANSI或C99标准),可以对大于time.h范围的日期进行计算,以1天的粒度进行计算(即我需要精确到天,但不需要精确到小时)?

我正在调整代码以处理历史事件,因此如果它也能处理公元前的日期就更好了。

最佳回答

是的,y2038项目正在重新实现time.h以实现2038年的安全性。到目前为止,gmtime()localtime()mktime()gmtime()已经完成并经过了良好的测试。这些都是难点。它跨越了大约3000亿年的时间。

问题回答

在SQLite中使用的公共领域实现:文档,源代码。

我也发现日历常见问题解答很有用;这个页面在谷歌上很早就弹出来了。





相关问题
热门标签