如何从D.O.B计算年龄?

时间:2016-09-26 06:06:52

标签: android date

我想从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();
            }
        });
    }

1 个答案:

答案 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

快乐的编码!