java - 日期验证从 android 中的当前日期起不到 18 年

标签 java android date android-datepicker

我必须在日期字段中进行验证,该字段必须比当前日期早 18 年,否则它必须显示错误。

public static boolean dobdateValidate(String date) {
        boolean result = false;
        SimpleDateFormat sdf = new SimpleDateFormat("MM-dd-yyyy");
        try {
            Date parseddate = sdf.parse(date);
            Calendar c2 = Calendar.getInstance();
            c2.add(Calendar.DAY_OF_YEAR, -18);
            Date dateObj2 = new Date(System.currentTimeMillis());
            if (parseddate.before(c2.getTime())) {
                result = true;
            }

        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }    
        return result;    
    }

最佳答案

你可以用这个方法来获取年龄

/**
 * calculates age from birth date
 * 
 * @param selectedMilli
 */
private void getAge(long selectedMilli) {
    Date dateOfBirth = new Date(selectedMilli);
    Calendar dob = Calendar.getInstance();
    dob.setTime(dateOfBirth);
    Calendar today = Calendar.getInstance();
    int age = today.get(Calendar.YEAR) - dob.get(Calendar.YEAR);
    if (today.get(Calendar.MONTH) < dob.get(Calendar.MONTH)) {
        age--;
    } else if (today.get(Calendar.MONTH) == dob.get(Calendar.MONTH)
            && today.get(Calendar.DAY_OF_MONTH) < dob
                    .get(Calendar.DAY_OF_MONTH)) {
        age--;
    }

    if (age < 18) {
        //do something
    } else {

    }

    str_age = age + "";
    Log.d("", getClass().getSimpleName() + ": Age in year= " + age);
}

关于java - 日期验证从 android 中的当前日期起不到 18 年,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20754813/

相关文章:

java - 在 gson 中解析动态 Json 对象

javascript:根据特定日期获取星期几

java - 我的程序中出现未知 NullPointerException "Date"

java - Gson.toJson 返回 null [ProGuard 问题]

java - ASyncTask 问题 - 执行 doInBackground 时发生错误

android - 从异步更新 UiThread 上的 TextView - Android

java - 手动设置日期和时间 - java

JavaScript 执行器在 Google Chrome 中工作,但在 Firefox 中不起作用

java - 动态设置不同的jtree行高

android - 无法从/storage/sdcard0 中删除目录