不确定原因,但我试图设置一个有效的(一个不是过去的)。这在某些情况下有效,例如设置为2014年4月4日,但如果我将其设置为2014年2月28日至2014年3月2日,则表示日期是过去的日期。有人能看出为什么会这样吗?
public class StartDatePicker extends DialogFragment implements
DatePickerDialog.OnDateSetListener {
Calendar c = Calendar.getInstance();
int startYear = c.get(Calendar.YEAR);
int startMonth = c.get(Calendar.MONTH);
int startDay = c.get(Calendar.DAY_OF_MONTH);
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Use the current date as the default date in the date picker
DatePickerDialog dialog = new DatePickerDialog(getActivity(), this,
startYear, startMonth, startDay);
return dialog;
}
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
// disable past dates
if (year < startYear || monthOfYear < startMonth
|| dayOfMonth < startDay) {
DialogFragment dialogFragment = new StartDatePicker();
dialogFragment.show(getSupportFragmentManager(),
"start_date_picker");
Toast.makeText(getApplicationContext(), "Select Valid Date",
Toast.LENGTH_LONG).show();
} else {
//store date
}}
答案 0 :(得分:0)
如果您想检查过去选择的日期,请使用以下内容:
在onDateSet函数上- 创建一个日历实例并:
calendar.set(Calendar.YEAR,year);
calendar.set(Calendar.MONTH,monthOfYear);
calendar.set(Calendar.DAY_OF_MONTH,dayOfMonth);
设置选择日期的日历后,使用System.timeInMilliseconds()
检查当前时间是否超过当前时间if (calendar.getTimeInMilliseconds() < System.timeInMilliseconds()) {
// Your implementation ...
}
希望它有所帮助......祝你好运