【发布时间】:2014-03-18 12:34:18
【问题描述】:
我想知道在这里做什么最好。我被分配了一个作业,我必须更新一个使用 Ctime 的 Date 类。
该课程现在必须适用于 1970 年之前的日期。我环顾四周,但没有找到太多...
所以我想我的问题是实现这一目标的最佳方法是什么?
日期范围从 [1970-2037] 到 [1900-2037]
【问题讨论】:
-
如果你必须处理 1900,你就有问题了。 32 位有符号类型可以处理 1901 年 12 月到 2038 年 1 月的范围,因此处理 1901 年的其余部分和 1900 年的所有部分需要不同的东西。您是否尝试过使用负数作为时间戳?
-
最简单的解决方案是 64 位签名。不过,您可能需要编写自己的
localtime(这很有趣 - 阿姆斯特丹时间曾经是 GMT +0h 19m 32,13s!) -
time_t通常是有符号整数类型,在许多实现中,标准函数在负值下都能正常工作。但是 32 位仅从 1901-12-13 到 2038-01-19。