【问题标题】:Adding 3 month when user pick date in android DatePickerDialog当用户在 android DatePickerDialog 中选择日期时添加 3 个月
【发布时间】:2020-03-17 13:59:32
【问题描述】:

点击按钮时触发此代码选择日期;然后它将 +3 个月添加到选择的日期。

displayDate.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            Calendar calendar = Calendar.getInstance();
            int year = calendar.get(Calendar.YEAR);
            int month = calendar.get(Calendar.MONTH);
            int day = calendar.get(Calendar.DAY_OF_MONTH);
            DatePickerDialog datepicker = new DatePickerDialog(Remainder.this, android.R.style.Theme_Holo_Light_Dialog_MinWidth, onDateSetListener, year,month,day);
            datepicker.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
            datepicker.show();
        }
    });
    onDateSetListener = new DatePickerDialog.OnDateSetListener() {
        @Override
        public void onDateSet(DatePicker view, int year, int month, int day) {
            month = month+1;
            Log.d(TAG, "onDateSet: mm/dd/yyyy: " + month + "/" + day + "/" + year);
            String date = month + "/" + day + "/" + year;
            displayDate.setText(date);
        }
    };

【问题讨论】:

  • 你不能说moth+=4

标签: java android datepickerdialog


【解决方案1】:

您可以使用GregorianCalendar 实例初始化的Calendar 类,然后使用Calendaradd() 方法将月份添加到您的日期。

然后使用get()方法来:

  • 通过:calendar.get(Calendar.DAY_OF_MONTH) 获取月份中的日期
  • 通过:calendar.get(Calendar.MONTH) 获取月份(范围 0-11)
  • 通过以下方式获取年份:calendar.get(Calendar.YEAR)

将此应用于您的代码:

onDateSetListener = new DatePickerDialog.OnDateSetListener() {
    @Override
    public void onDateSet(DatePicker view, int year, int month, int day) {
        Calendar calendar = new GregorianCalendar(year, month, day);
        calendar.add(Calendar.MONTH, 3); // adding 3 months
        int newMonth = calendar.get(Calendar.MONTH) + 1;
        Log.d(TAG, "onDateSet: mm/dd/yyyy: " +  newMonth + "/" + calendar.get(Calendar.DAY_OF_MONTH) + "/" + calendar.get(Calendar.YEAR));
        String date = newMonth + "/" +  calendar.get(Calendar.DAY_OF_MONTH) + "/" + calendar.get(Calendar.YEAR);
        displayDate.setText(date);
    }
};

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-01
    • 1970-01-01
    • 2020-08-11
    • 2018-01-07
    • 2013-08-07
    • 2022-08-03
    • 2019-07-10
    • 2016-12-28
    相关资源
    最近更新 更多