【问题标题】:Age Calculate when user select DOB from date picker用户从日期选择器中选择出生日期时的年龄计算
【发布时间】:2016-05-26 12:25:39
【问题描述】:
  • 当用户从日期选择器中选择 DOB 时,我想计算年龄
  • 日期选择器代码与任何地方都相同

  • 我的日期格式:

    1990/06/07(获取此格式)

  • 我需要计算年龄,即当前日期 - DOB 2016-1990 = 26

代码:

public class SelectDateFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener {
        @Override
        public Dialog onCreateDialog(Bundle savedInstanceState) {
            final Calendar calendar = Calendar.getInstance();
            int yy = calendar.get(Calendar.YEAR);
            int mm = calendar.get(Calendar.MONTH);
            int dd = calendar.get(Calendar.DAY_OF_MONTH);

           int a = yy - calendar.get(Calendar.YEAR);
            Log.e("999999", String.valueOf(a));
            return new DatePickerDialog(getActivity(), this, yy, mm, dd);
        }
  • 它给了我 0 。这就是问题

【问题讨论】:

标签: android datepicker


【解决方案1】:

您可以使用JodaTime 库来获得高效的结果。

    String dateStr = "04/05/2010";

    SimpleDateFormat curFormater = new SimpleDateFormat("dd/MM/yyyy");
    Date dateObj = null;
    try {
        dateObj = curFormater.parse(dateStr);
    } catch (ParseException e) {
        e.printStackTrace();
    }


    Period age = calcDiff(dateObj,new Date());
    Toast.makeText(this, PeriodFormat.wordBased().print(age),Toast.LENGTH_SHORT).show();

并使用此方法获取差异

  private Period calcDiff(Date startDate,Date endDate)
  {
    DateTime START_DT = (startDate==null)?null:new DateTime(startDate);
    DateTime END_DT = (endDate==null)?null:new DateTime(endDate);

    Period period = new Period(START_DT, END_DT);

    return period;

 }

或者根据您的要求,您可以像这样更改PeriodFormat

 PeriodFormatter mPeriodFormat;
 mPeriodFormat = new PeriodFormatterBuilder().appendYears().appendSuffix(" year(s) ").appendMonths().appendSuffix(" month(s) ").appendDays().appendSuffix(" day(s) ").printZeroNever().toFormatter();
 Toast.makeText(this,mPeriodFormat.print(age),Toast.LENGTH_SHORT).show();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-27
    • 2016-10-26
    • 2016-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多