【发布时间】:2010-06-17 23:45:29
【问题描述】:
我正在尝试找出一种方法来计算记录的出生年份,当在给定日期将年龄保留为小数点后两位 - 在 Perl 中。
为了说明这个例子,考虑以下两条记录:
date, age at date
25 Nov 2005, 74.23
21 Jan 2007, 75.38
我想做的是根据这些记录获取出生年份 - 从理论上讲,它应该是一致的。问题是,当我尝试通过计算日期字段中的年份减去年龄之间的差异来推导它时,我遇到了舍入错误,导致结果看起来错误,而实际上它们是正确的。
我尝试使用 int() 或 sprintf() 的一些“聪明”组合来四舍五入,但无济于事。我查看了 Date::Calc 但看不到我可以使用的东西。
附言由于许多日期都在 1970 年之前,因此我不能不使用 UNIX 纪元。
【问题讨论】:
-
每百分之一代表多少天? (可能有几个答案。)
-
pre-1970 不是问题:Unix time() 是有符号整数。但是,有一个更好的理由不使用它:闰年、闰秒……