【问题标题】:How can I setMaxDate() for DatePicker to one month after the current date?如何将 DatePicker 的 MaxDate() 设置为当前日期后一个月?
【发布时间】:2015-12-31 10:56:44
【问题描述】:

这是我的onCreateDialog

DatePickerDialog dialog = new DatePickerDialog(this, dpickerListener, year_x, month_x, day_x);
        dialog.getDatePicker().setMinDate(System.currentTimeMillis() - 1000);
        dialog.getDatePicker().setMaxDate();

如您所见,setMaxDate() 为空。我想将datePickerDialog 的最大日期设置为当前日期后一个月。 以下是我获取当前日期的方法:

cal2 = Calendar.getInstance();
    currentDay = cal2.get(Calendar.DAY_OF_MONTH);
    currentMonth = cal2.get(Calendar.MONTH);
    currentYear = cal2.get(Calendar.YEAR);
    currentDate = new Date();
    currentDate.setDate(currentDay);
    currentDate.setMonth(currentMonth);
    currentDate.setYear(currentYear);

【问题讨论】:

  • 尝试设置 currentMonth = cal2.get(Calendar.MONTH+1);可以设置当月+下个月的工作
  • 否则还有很长的路要走,下个月在当前日期进入日历...

标签: java android datepicker android-datepicker android-date


【解决方案1】:

使用这个sn-p

Calendar cal=Calendar.getInstance()
cal.add(Calendar.MONTH,1)
long afterTwoMonthsinMilli=cal.getTimeInMillis()
    DatePickerDialog.getDatePicker().setMaxDate(afterTwoMonthsinMilli);

它将当前系统日期读入一个日历对象,并给指定字段加1,本例为MONTH,并返回一个日历对象

同样如果你想给其他字段加值,在字段类型中指定字段为:

  • Calendar.DAY_OF_MONTH
  • Calendar.YEAR
  • Calendar.HOUR

等等

【讨论】:

  • 不起作用; Add 不是一种方法。 add 是,但是它没有实现 getTimeInMillis()
  • 如果可以的话我会 +1
  • 但是既然你解释了,我会选择你的答案为正确的
【解决方案2】:
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.MONTH, 1);
dialog.getDatePicker().setMaxDate(calendar.getTimeInMillis);

您可以使用“添加”添加到Calendar.MONTH

【讨论】:

    【解决方案3】:

    你必须重写 OnDateChangedListener `新的 OnDateChangedListener() {

                public void onDateChanged(DatePicker view, int year,
                        int month, int day) {
                    Calendar newDate = Calendar.getInstance();
                    newDate.add(Calendar.MONTH, 1);
    
                    if (calendar.before(newDate)) {
                        view.init(minYear, minMonth, minDay, this);
                    }
                }
            });`
    

    【讨论】:

      猜你喜欢
      • 2020-04-14
      • 1970-01-01
      • 2013-01-19
      • 1970-01-01
      • 1970-01-01
      • 2012-11-19
      • 1970-01-01
      • 2023-03-25
      • 2013-10-18
      相关资源
      最近更新 更多