我想写一个从出生日期计算年龄的方法,逻辑是否正确以及如何用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/