【问题标题】:setMaxDate to DatePickerDialogsetMaxDate 到 DatePickerDialog
【发布时间】:2016-04-21 11:46:39
【问题描述】:

您好,我实现了 DatePickerDialog,但我想设置范围,我找到了 setMinDatesetMaxDate,但我不知道如何设置把价值观。我想为最小 18 岁和最大 100 岁的用户设置日历;我认为这是关于以毫秒为单位的计算。

    final Calendar c = Calendar.getInstance();
    int year = c.get(Calendar.YEAR);
    int month = c.get(Calendar.MONTH);
    int day = c.get(Calendar.DAY_OF_MONTH);
DatePickerDialog dpd = new DatePickerDialog(getActivity(), AlertDialog.THEME_DEVICE_DEFAULT_LIGHT, this, year, month, day);
dpd.getDatePicker().setMaxDate(max);
return dpd;

我不知道在 2016 - 18 年我必须达到最大的价值。

【问题讨论】:

  • @Juvi 是的,我看过,但实际日期为 max
  • new Date().getTime() 返回当前日期,所以我假设您想设置自己的日期。只需创建新的 Date 对象并为其设置值,然后将其设置为 maxDate...
  • @Juvi 我不希望用户不小于 18 岁,所以我必须将最大值设置为现在 - 18
  • @PoojaGaikwad 请看我的编辑

标签: android datepicker


【解决方案1】:

使用此代码,设置从当前日期开始的最大日期和最小日期。

Calendar minCal = Calendar.getInstance();
minCal.set(Calendar.YEAR, minCal.get(Calendar.YEAR) - 100);
Calendar maxCal = Calendar.getInstance();
maxCal.set(Calendar.YEAR, maxCal.get(Calendar.YEAR) - 18);
dialog.getDatePicker().setMinDate(minCal.getTimeInMillis());
dialog.getDatePicker().setMaxDate(maxCal.getTimeInMillis());

【讨论】:

  • 我没有得到 1916 年到 1998 年之间的良好范围(最小年龄为 18 岁,最大年龄为 100 岁)
  • 很好,谢谢,你知道我如何显示完整日期吗,比如如果我输入 1/1/1993 我想要 01/01/1993
【解决方案2】:

我想这就是你需要的:

            final Calendar maxc = Calendar.getInstance();
            int year = maxc.get(Calendar.YEAR);
            maxc.set(Calendar.YEAR,year-18);
            datePickerDialog.getDatePicker().setMaxDate(maxc.getTimeInMillis());

            final Calendar minc = Calendar.getInstance();
            int year = minc.get(Calendar.YEAR);
            minc.set(Calendar.YEAR,year-100);
            datePickerDialog.getDatePicker().setMinDate(minc.getTimeInMillis());
            datePickerDialog.show();

【讨论】:

  • 它不适用于年龄验证。请编辑您的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-08
  • 2018-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多