【问题标题】:Date validation to be less than 18 years from current date in android日期验证从 android 中的当前日期开始少于 18 年
【发布时间】:2013-12-24 04:20:27
【问题描述】:

我必须在日期字段中进行验证,该字段必须比当前日期少 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;    
    }

【问题讨论】:

标签: java android date android-datepicker


【解决方案1】:

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

/**
 * 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);
}

【讨论】:

  • 不..我现在不记得TimeGoal了。
【解决方案2】:

核心问题是Calendar.DAY_OF_YEAR不正确,因为“[DAY_OF_YEAR表示]当年的天数”。

请改用Calendar.YEAR


其他建议:

  • dateObj2 变量从未使用过,应将其删除。
  • 直接返回,而不是使用中间标志变量。
  • 接收一个日期/日历对象,让调用者负责解析。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-09
    • 2012-08-31
    • 1970-01-01
    • 2020-06-01
    • 1970-01-01
    • 2015-09-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多