我在ANSI C中有一段代码,它使用time.h库和time_h结构(以及其他与日期有关的计算)来计算两个给定日期之间的间隔。这可以正常工作,但是这限制了我的代码在1970年到2038年之间的输入。现在,我想使我的代码更通用。
是否有一个通用的C库(ANSI或C99标准)以1天(即我需要当天的分辨率,但没有必要使用小时的分辨率)对大于time.h的范围执行日期计算?
(我正在修改代码以处理历史事件,因此,如果它还可以处理不列颠哥伦比亚省的日期,那就太好了。)
最佳答案
是的,y2038 project正在重新实现time.h以确保2038安全。到目前为止,gmtime()
,localtime()
,mktime()
和gmtime()
已完成并经过了很好的测试。那些是硬的。这两个方向的跨度大约为3000亿年。
关于c - time.h嵌入式替换:time_t用于ANSI-C或C99中的值(年份<1970年)和(年份> 2038年),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/331271/