Android-知道一个String类型的日期怎么计算年龄?

Android-知道一个String类型的日期怎么计算年龄?

归属感 发布于 2017-05-28 字数 243 浏览 1295 回复 4

求教,现在我已知一个String类型的的出生日期(例如:"1967-05-22 00:00:00"),我要怎么计算他的年龄?
主要是不知道怎么处理这个字符串形式的日期,用读取字符串的方式好像挺麻烦的,不知道有没有些简便些的方法?
本人基础比较薄弱,各位不要见怪,谢谢

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

晚风撩人 2017-09-13 4 楼

给你写了个方法,你试试

public static int getAge(String date) throws Exception,SQLException{
int j = 0;
int age = 0;
if(date.equals(""))
return 1;
date = date.substring(0, 10);
boolean bool = false;
if(date.equals(""))
return 0;
else{
//Date date = (Date)obj[0];
String[] today = getTime(new Date() ,"yyyy-MM-dd").split("-");

int[] todayInt = new int[3];
int[] da = new int[3];
String[] ds = date.split("-");

for(int i = 0; i < 3 ;i ++){
todayInt[i] = Integer.parseInt(today[i]);
da[i] = Integer.parseInt(ds[i].toString());
if(i == 0)
age = todayInt[i] - da[i];
}
bool = compareDate(todayInt , da,j , bool);
}
if(bool == true)
age--;
return age;

}

public static String getTime(Date inputDate,String patten) {
String reValue = "";
try {
Calendar calendar = Calendar.getInstance();
calendar.setTime(inputDate);
reValue = getSimpleDate(calendar.getTime(),
patten);
} catch (Exception e) {
e.printStackTrace();
}
return reValue;
}
private static boolean compareDate(int[] date1 , int[] date2 ,int i ,boolean bool){
// System.out.println("date1:" + date1[i]);
// System.out.println("date2:" + date2[i]);
// System.out.println("i:" + i);
if(date1[i] > date2[i] ){
if(i > 0){
bool = false;
}
else{
return compareDate(date1 ,date2 ,++i ,bool);

}
}
else if(date1[i] < date2[i]){
bool = true;
}
else if(date1[i] == date2[i]){
if(i == 2){
bool = true;
}
else{
return compareDate(date1 ,date2 ,++i ,bool);

}
}
return bool;
}

泛泛之交 2017-08-20 3 楼

 DateTime birthday = DateTime.Parse("1967-05-22 00:00:00");
int age = DateTime.Now.Year - birthday.Year;

直接这样转换就可以,字符串转换为日期很方便的。

浮生未歇 2017-08-15 2 楼

把生日先转换为DateTime类型birthday,

int age=DateTime.Now.Year-birthday.Year

虐人心 2017-05-30 1 楼

使用joda,会让整个程序容易很多。

DateMidnight birthdate = new DateMidnight(1967, 5, 22);
DateTime now = new DateTime();
Years age = Years.yearsBetween(birthdate, now);