加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

为什么Perl的本地时间函数(和C的tm结构)相对于1900年的价值?

发布时间:2020-12-15 21:13:48 所属栏目:大数据 来源:网络整理
导读:正如所有Perl程序员(希望)知道的那样,从Perl的本地时间函数调用的年值相对于1900.想知道为什么会这样,我看了一下 perldoc for localtime,并发现这个有趣的块: All list elements are numeric and come straight out of the C `struct tm’. 然后在C++ refer
正如所有Perl程序员(希望)知道的那样,从Perl的本地时间函数调用的年值相对于1900.想知道为什么会这样,我看了一下 perldoc for localtime,并发现这个有趣的块:

All list elements are numeric and come straight out of the C `struct tm’.

然后在C++ reference for the tm struct,我发现tm_year成员变量被声明为一个int.

问题:那为什么呢是相对于1900年的年值,而不是简单的四位数的年份?有没有一些历史原因?在我看来,即使在计算中存在早期的内存限制,一个整数(显然)足以存储全年.一定有一个很好的理由;我很好奇可能是什么

解决方法

在20世纪70年代初,在C和Unix被发明之前,我正在进行编程.使用两位数的年份来节省非常紧的磁盘空间,我们总是试图用这样的技巧来保存它.我工作的第一台机器有两个20兆字节的驱动器,每个大小的洗衣机.

我在1975年在一家遇到Y2K问题的医院工作.病人的年龄是一件很重要的事情,出生日期只有两位数的年份.作为一家医院,我们显然有一些非常老的病人,生于18世纪.该制度假设任何出生年龄在75岁以上的人都是在1800年代出生的.对于1890年出生的人来说,这一点很好,但1975年1月1日之后,新生儿被认为是100岁,所有这些都破裂了. (这也是一个主要的产科医院).我们围绕这个问题解决了这个问题,把门槛从75降到了80.我也是第一次了解电脑公元二千年数位问题是什么,我意识到我会做得更好到2000年还有其他事情.我失败了.

那些认为千年虫问题不是真正的问题的人,因为没有发生什么事情,不了解这些几年前的工作量.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读