java - 如何在android中创建年龄计算方法的方法

标签 java android

我想写一个从出生日期计算年龄的方法,逻辑是否正确以及如何用android Java编写:

public int calculateAge(String birthday){ 
 // consider that birthday format is ddmmyyyy;

 String today = SystemDate(ddmmyyyy);
 int bDay = birthday(1,2).toInteger;
 int bMonth = birthday(3,4).toInteger;
 int bYear = birhtday(5,8).toInteger;

 int tDay = today(1,2).toInteger;
 int tMonth = today(3,4).toInteger;
 int tYear = today(5,8).toInteger;

 if (tMonth == bMonth){
     if (tday>= bDay){ 
        age = tYear - bYear;
      else 
        age = tYear - bYear - 1;}
 else
   if (tMonth > bMonth) {
       age = tYear - bYear;
   else 
       age = tYear - bYear - 1;}
 }
 return age;
}

最佳答案

这是我对问题的解决方案:

/**
 * Method to extract the user's age from the entered Date of Birth.
 * 
 * @param DoB String The user's date of birth.
 * 
 * @return ageS String The user's age in years based on the supplied DoB.
 */
private String getAge(int year, int month, int day){
    Calendar dob = Calendar.getInstance();
    Calendar today = Calendar.getInstance();

    dob.set(year, month, day); 

    int age = today.get(Calendar.YEAR) - dob.get(Calendar.YEAR);

    if (today.get(Calendar.DAY_OF_YEAR) < dob.get(Calendar.DAY_OF_YEAR)){
        age--; 
    }

    Integer ageInt = new Integer(age);
    String ageS = ageInt.toString();

    return ageS;  
}

我使用了 DatePicker获取此处所需的输入值。该方法与日期选择器一起,专门用于获取用户的 DoB 并计算其年龄。根据您的具体实现,可以稍作修改以允许用户 DoB 的字符串输入。 String 的返回类型用于更新一个 TextView,可以做一个小修改以允许类型 int 输出。

关于java - 如何在android中创建年龄计算方法的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5291503/

相关文章:

java - RecyclerView 需要时间在 Fragment 中加载 Adapter 值

java - 文件读取IO

java ProGuard 删除(收缩)未使用的类

java - 将 ARGB 颜色值转换为 ABGR 的快速算法?

java - 为什么变量名通常以字母 'm' 开头?

java - 将 SQL 值添加到 ArrayList,然后检查它们是否存在

android - Android 中是否有一个小部件 (AbsListView) 可以在一行中显示项目,如果它们不适合则将它们放在下面?

java - 创建使用给定列表中的键初始化的映射

java - 使用 Apache POI 访问数据透视表的字段设置

java - Undertow on Spring 泄漏连接