我想从D.O.B计算年龄。我从下面的代码中获取了出生日期。现在我想计算用户年龄,我想在另一个textView中显示年龄。我怎样才能做到这一点?
dateFormatter = new SimpleDateFormat("dd-MMM-yyyy", Locale.US);
public void setDateTimeField() {
date();
Calendar newCalendar = Calendar.getInstance();
fromDatePickerDialog = new DatePickerDialog(getActivity(), new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
Calendar newDate = Calendar.getInstance();
newDate.set(year, monthOfYear, dayOfMonth);
txtDatePicker.setText(dateFormatter.format(newDate.getTime()));
}
},newCalendar.get(Calendar.YEAR), newCalendar.get(Calendar.MONTH), newCalendar.get(Calendar.DAY_OF_MONTH));
}
public void date(){
txtDatePicker.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
fromDatePickerDialog.show();
}
});
}
答案 0 :(得分:1)
查看Joda,这简化了日期/时间计算(Joda也是新标准Java日期/时间apis的基础,因此您将学习一个即将成为标准的API )。
Java 8有something very similar,值得一试。
e.g。
LocalDate birthdate = new LocalDate (1970, 1, 20);
LocalDate now = new LocalDate();
Years age = Years.yearsBetween(birthdate, now);
这就是你想要的那么简单。
在Java 8中使用日期的好例子:Java 8 Date Examples
快乐的编码!