2

我很好奇是否有“最佳实践”方法来进行年龄验证。我在想我会抓住现在的毫秒数和他们生日的毫秒数,然后看看他们的生日 + ageReq * (365 * millPerYear) > currentMillisecond。

我相信这会起作用,但我想知道这种方法是否有任何问题和/或是否有一个库可以解决我在这里可能没有预料到的任何陷阱(例如,是否存在闰年问题?)

这个问题与语言无关,我目前在 Java 中,但很好奇无论语言如何,正确的方法是什么。

TIA

4

2 回答 2

7

你可以试试joda-time。是的,您的支票有轻微缺陷。这不是很准确。根据您必须遵守的法律合规程度,您可以接受也可以不接受。Joda time 是一个很好的库,因为它确实负责所有基本检查。

如果您正在寻找语言不可知论者。然后你可以查看 Joda-time 的代码。因为它精确地计算了日期。

于 2012-07-10T01:38:23.447 回答
2

如果您使用现有的生日,请使用 Date 和 Calendar 类来获得准确的差异。如果您使用您的方法,那么由于闰年/秒等原因,它并不准确......日期是手工计算的一团糟。

如果您目前没有生日并且不需要记录它,我建议您不要实际要求您的应用程序,因为这很烦人,当我必须这样做时,我只需向下滚动年份并随机选择一个较旧的超过20个左右。如果您超过/低于 X,只需询问是或否。

于 2012-07-10T01:29:55.070 回答