【发布时间】:2020-03-06 20:17:24
【问题描述】:
我正在尝试查找选中的date 与今天的date 差异是否等于或大于18 年。
为了获取今天的日期,下面是我的代码
private val simpleDateFormat = SimpleDateFormat("dd-MM-yyyy", Locale.getDefault())
private val date = Date()
private val todayDate = simpleDateFormat.parse(simpleDateFormat.format(date)).time
private val cal = Calendar.getInstance()
cal.time = date
val date = simpleDateFormat.parse("12-11-2001").time
val years = (todayDate - date) / (1000L * 60 * 60 * 24 * cal.getActualMaximum(Calendar.DAY_OF_YEAR))
现在我选择的日期是 2001 年 12 月 11 日,今天的日期是 2019 年 11 月 11 日,所以它应该显示 17 年,但显示的是 18 年。即使我选择 13,14 或 2001 年 11 月 15 日,它也会显示 18 年而不是 17 年,但如果我选择 2001 年 11 月 16 日,那么它会显示 17 年。我无法理解为什么会发生这种行为。
【问题讨论】:
-
private val todayDate = simpleDateFormat.parse(simpleDateFormat.format(date))多么奇怪的一行。它实际上什么也没做。使用date而不是全部。 -
@VladyslavMatviienko 感谢您优化我的代码,但仍然面临同样的问题
-
我认为您需要使用
DatePickerDialog,它将根据您的要求轻松实现。 -
当用户选择日期时,我正在使用 DatePickerDialog。只是为了方便我的问题,我已经硬编码了选定的日期@ParthLotia
-
您需要用户是否年满 18 岁这样的条件?
标签: android datetime kotlin android-date