Java 如何在DatePickerDialog android中根据拾取的日期计算年龄?
我怎么能这样做 这是我的代码:Java 如何在DatePickerDialog android中根据拾取的日期计算年龄?,java,android,Java,Android,我怎么能这样做 这是我的代码: private void setDateTimeField () { Calendar newCalendar = Calendar.getInstance(); mDatePickerDialog = new DatePickerDialog(AddBirthday.this, new OnDateSetListener() { @Override public void onDateSet(DatePicker
private void setDateTimeField () {
Calendar newCalendar = Calendar.getInstance();
mDatePickerDialog = new DatePickerDialog(AddBirthday.this, new OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
Calendar newDate = Calendar.getInstance();
newDate.set(year, monthOfYear, dayOfMonth);
addBirthdayDate.setText(dateFormatter.format(newDate.getTime()));
dateSelected = String.valueOf(dayOfMonth) + " /" + String.valueOf(monthOfYear + 1)
+ " /" + String.valueOf(year);
}
}, newCalendar.get(Calendar.YEAR), newCalendar.get(Calendar.MONTH), newCalendar.get(Calendar.DAY_OF_MONTH));
}
我现在想计算当用户在DatePickerDialog中选择日期并将其存储为整数类型时,用户的生日是什么时候 int age=getCurrentYear()-datePicker.getYear() 您可以尝试使用更简单的代码,例如:
private int mDay;
private int mMonth;
private int mYear;
private EditText date;
private Calendar c = new Calendar();
...
//and in your onCreate method:
date = (EditText)findViewById(R.id.date_of_birth_as_text);
date.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
showDialog(DATE_DIALOG_ID); //DATE_DIALOG_ID is the id of your DatePickerDialog - declared in your layout file
}
});
//default values of the year, month and date - will be changed after click on the EditText view
mYear = c.get(Calendar.YEAR);
mMonth = c.get(Calendar.MONTH);
mDay = c.get(Calendar.DAY_OF_MONTH);
updateDisplay();
protected Dialog onCreateDialog(int id) {
switch(id) {
case DATE_DIALOG_ID:
return new DatePickerDialog(this, mDateSetListener, mYear, mMonth, mDay);
}
return null;
}
private DatePickerDialog.OnDateSetListener mDateSetListener= new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
// TODO Auto-generated method stub
c.set(Calendar.YEAR, year);
c.set(Calendar.MONTH, monthOfYear);
c.set(Calendar.DAY_OF_MONTH, dayOfMonth);
mYear = c.get(Calendar.YEAR);
mMonth = c.get(Calendar.MONTH);
mDay = c.get(Calendar.DAY_OF_MONTH);
updateDisplay();
}
};
private void updateDisplay() {
Date currentDate = new Date();
int age = currentDate.getYear() - mYear;
date.setText( new StringBuilder().append("The user is ")
.append(age).append(" years old"));
}
谢谢您的回复,但我需要根据DatePickerDialog中他选择的日期计算出一个人的年龄。例如,如果他选择1992年,我需要将其计算为23年,并将其存储为整数类型;int age=currentDate.getYear()-mYear代码>*您也可以像这样获取当前年份日历。get(Calendar.year)-1900getYear()方法被删除。这就是为什么我写下您可以使用
Calendar.get(Calendar.year)-1900
而不是这将在几周内出现问题。今年最好不要硬编码。最好是编辑您的答案并获取当前年份。