检查日期是否是几年前的特定日期

时间:2018-07-18 10:59:38

标签: android kotlin jodatime

任务是确定用户的年龄(通过unix时间戳表示)是否超过18年(或与此相关的任何数字)。重要的是要确保此算法的精确度可以达到一天(例如,如果用户出生于365天之前)。

对于如此简单的工作,绝对不需要使用JodaTime之类的大型库。

1 个答案:

答案 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
}
相关问题