Android商店有效日期(不是过去的日期)

时间:2014-02-28 22:04:16

标签: java android date datepicker

不确定原因,但我试图设置一个有效的(一个不是过去的)。这在某些情况下有效,例如设置为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

}}

1 个答案:

答案 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 ... 
}

希望它有所帮助......祝你好运