Добавление 3 месяцев, когда пользователь выбирает дату в android DatePickerDialog - PullRequest
0 голосов
/ 17 марта 2020

Эта следующая дата выбора кода запускается при нажатии кнопки; а затем добавляет +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);
        }
    };

1 Ответ

0 голосов
/ 17 марта 2020

Вы можете использовать класс Calendar, инициализированный экземпляром GregorianCalendar, а затем использовать метод Calendar s add() для добавления месяцев на вашу дату.

А затем используйте get() метод, чтобы:

  • получить день месяца по: calendar.get(Calendar.DAY_OF_MONTH)
  • получить месяц (в диапазоне 0-11): calendar.get(Calendar.MONTH)
  • получить год по: 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);
    }
};
...