我有另一个课程,在textview中显示日历到用户和设置日期。但是如何获取日期(从这里开始的年份?用于计算一般用户的年份)。
这是我正在使用的代码。这是:DELETE
,它在文本视图中显示用户和设置日期的日历。我不知道为此代码设置此日期:TextViewDatePicker editTextDatePicker = new TextViewDatePicker implement class
Calendar dateOfYourBirth = new GregorianCalendar();
这是显示用户日历的类:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.profile_fragment);
editTextForAge = (TextView) findViewById(R.id.ed_calendar);
Window window = this.getWindow();
TextViewDatePicker editTextDatePicker = new TextViewDatePicker(ProfileGeneral.this, editTextForAge);
Calendar dateOfYourBirth = new GregorianCalendar();
Calendar today = Calendar.getInstance();
int yourAge = today.get(Calendar.YEAR) - dateOfYourBirth.get(Calendar.YEAR);
dateOfYourBirth.add(Calendar.YEAR, yourAge);
if (today.before(dateOfYourBirth)) {
yourAge--;
}
答案 0 :(得分:1)
使用java.time
(现代Java日期和时间API)可以轻松实现这一点。
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
// date picker month is 0-based, so add 1 to it
LocalDate datePickerDate = LocalDate.of(year, monthOfYear + 1, dayOfMonth);
mView.setText(datePickerDate.toString());
LocalDate today = LocalDate.now(ZoneId.of("America/Tortola"));
long yourAge = ChronoUnit.YEARS.between(datePickerDate, today);
}
你可以在Android上使用它吗?当然!对于大多数Android设备,您需要获得ThreeTenABP,从Java 8到Android Java 7的java.time
的后端。this question: How to use ThreeTenABP in Android Project(JSR-310为3Ten,其中有很好的解释,其中首先描述java.time
,然后安装Android Backport的ABP。
如果不是美国/托尔托拉,请替换您想要的时区。
答案 1 :(得分:0)
您对TextViewDatePicker使用了错误的构造函数
更新代码:
TextViewDatePicker editTextDatePicker = new TextViewDatePicker(ProfileGeneral.this, editTextForAge);
与
TextViewDatePicker editTextDatePicker = new TextViewDatePicker(ProfileGeneral.this, editTextForAge,0,0);