任务是确定用户的年龄(通过unix时间戳表示)是否超过18年(或与此相关的任何数字)。重要的是要确保此算法的精确度可以达到一天(例如,如果用户出生于365天之前)。
对于如此简单的工作,绝对不需要使用JodaTime之类的大型库。
答案 0 :(得分:1)
这个问题已经有很多答案了,但是它们都使用JodaTime(这很可怕),复杂的计算或不可靠的方法(您不能仅仅乘以年数* 1000 * 60 * 60 * 24而忘了年)。
准确而简单的解决方案是:
fun check(dateOfBirth: Long, minYears: Int): Boolean {
val timestampThen = Calendar.getInstance().apply {
timeInMillis = System.currentTimeMillis()
add(Calendar.YEAR, -minYears)
}.timeInMillis
return dateOfBirth <= timestampThen
}