本文介绍了年龄计算用户从日期选择器中选择DOB的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
- 当用户从日期选择器中选择DOB时,我想计算年龄
-
日期选择器代码与所有地方相同
- I want to calculate age , when user select DOB from date picker
Date picker code is same as everywhere
我的日期格式:
1990/06/07(获取此格式)
1990/06/07 (getting this format)
我需要计算年龄,即当前日期 - DOB 2016-1990 = 26
I need to calculate age i.e current date - 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。这个问题 推荐答案
你可以使用 JodaTime 库,以获得有效的结果。
You can use JodaTime library for efficient results.
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 像这样
or as per your requirement you can change PeriodFormat like this
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();更多推荐
年龄计算用户从日期选择器中选择DOB
发布评论