【发布时间】:2020-10-25 13:46:23
【问题描述】:
如何计算日期范围选择器之间的天数
我正在尝试,但没有解决方案,请任何人帮助我
我急需计算天数 当用户从日期选择器范围中选择日期范围时 然后设置文本总天数。
try {
String valu1 = String.valueOf(constraintsBuilder.setStart(calendar.getTimeInMillis()));
String valu2 = String.valueOf(constraintsBuilder.setEnd(calendar.getTimeInMillis()));
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd-MMM-yyyy");
Date date1 = simpleDateFormat.parse(valu1);
Date date2 = simpleDateFormat.parse(valu2);
long difference = Math.abs(date1.getTime() - date2.getTime());
Log.i("Testing","days" +difference);
textView.setText("days" +difference);
}
catch(Exception ex)
{
ex.printStackTrace();
}
主要代码是
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
showDatePicker= findViewById(R.id.showDatepicker);
textView=findViewById(R.id.textView);
Calendar calendar =Calendar.getInstance(TimeZone.getTimeZone("UTC+06"));
calendar.clear();
MaterialDatePicker.Builder builder = MaterialDatePicker.Builder.dateRangePicker();
builder.setTitleText("Select Date");
final MaterialDatePicker materialDatePicker = builder.build();
showDatePicker.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
materialDatePicker.show(getSupportFragmentManager(),"DATE_PICKER");
}
});
materialDatePicker.addOnPositiveButtonClickListener(new MaterialPickerOnPositiveButtonClickListener() {
@Override
public void onPositiveButtonClick(Object selection) {
showDatePicker.setText(materialDatePicker.getHeaderText());
}
});
}
【问题讨论】:
-
顺便考虑扔掉长期过时且臭名昭著的麻烦
SimpleDateFormat和朋友,并将ThreeTenABP添加到您的Android项目中,以便使用java.time,现代Java日期和时间API .与它一起工作要好得多。开箱即用地计算天数。
标签: android material-design android-datepicker material-components-android