java - 使用日期选择器 android 从今天开始检查用户是否超过 18 年

标签 java android kotlin calendar android-datepicker

我正在尝试检查我的用户是否应该年满 18 岁。如果不是,则举杯 toast 。 (试图从今天的确切日期获取)。但结果是每年都取得成功。

输出 - 正在计算年份。
预期 - 从今天开始,用户应年满 18 岁。

这是我尝试过的。

    val calendar = Calendar.getInstance()
    val year = calendar.get(Calendar.YEAR)
    val month = calendar.get(Calendar.MONTH)
    val day = calendar.get(Calendar.DAY_OF_MONTH)
    val dpd = DatePickerDialog(this, DatePickerDialog.OnDateSetListener { view, year, monthOfYear, dayOfMonth ->
            calendar.set(Calendar.YEAR, year)
            calendar.set(Calendar.MONTH, monthOfYear)
            calendar.set(Calendar.DAY_OF_MONTH, dayOfMonth)
            val sdf = SimpleDateFormat(myFormat, Locale.US)
            val dob = sdf.format(calendar.time)

            val userAge = GregorianCalendar(year, month, day)
            val minAdultAge = GregorianCalendar()
            minAdultAge.add(Calendar.YEAR, -18)
            minAdultAge.add(Calendar.MONTH, -1)
            if (minAdultAge.before(userAge)) {
                Toast.makeText(this, getString(R.string.txt_18_years_age_validation), Toast.LENGTH_SHORT).show()
            } else {
                etDob!!.setText(dob)
            }
        }, year, month, day
    )

    dpd.datePicker.maxDate = Calendar.getInstance().timeInMillis
    dpd.show()

需要进行哪些修改才能获得今天日期的验证。

谢谢你。

最佳答案

尝试将 minAdultAge 和 DOB 转换为毫秒进行比较

minAdultAge.timeInMillis > dob.timeInMillis

关于java - 使用日期选择器 android 从今天开始检查用户是否超过 18 年,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58968755/

相关文章:

java.net.ConnectException : Connection timed out: connect error connecting to remote database

android - Android Studio 中的 Eclipse "Custom debug Keystore"相当于什么?

java - 将可 Collection 的 URL 应用到 h :commandLink

java - JDBC 插入不起作用

java - 如何存储和重放 JDBC 语句?

android - 无法让 dagger2 将改造 api 注入(inject)单例对象,然后将该单例对象注入(inject) fragment

android - 如何使用导航组件向变化的 fragment 添加动画?

java - 如果 Java 中存在用户定义的构造函数,则初始化变量

android - 带有自定义 ArrayAdapter 的 ListView 未更新

kotlin - 如何定义有序的Kotlin序列