Как добавить 21 день к значению даты выбора в Android - PullRequest
0 голосов
/ 20 июня 2019
public void Pickdateheatdryopen(View view) {
        final Calendar calender = Calendar.getInstance ();
        final int year = calender.get ( Calendar.YEAR );
        final int month = calender.get ( Calendar.MONTH );
        final int day = calender.get ( Calendar.DAY_OF_MONTH );
        calender.add(Calendar.DATE,5);


        datePickerDialog = new DatePickerDialog ( CowActivity.this, new DatePickerDialog.OnDateSetListener () {
            @Override
            public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {

                /*SimpleDateFormat sdf = new SimpleDateFormat("dd/mm/yyyy");
final Calendar calender = Calendar.getInstance ();
        final int year = calender.get ( Calendar.YEAR );
        final int month = calender.get ( Calendar.MONTH );
        final int day = calender.get ( Calendar.DAY_OF_MONTH );
        calender.add(Calendar.DATE,5);                
Date s = calender.getTime();
                Log.e(TAG,"vale"+sdf.format(s));*/

                inputheatdry.setText ( (dayOfMonth) + "/" + (month+1 ) + "/" + (year) );
               // read1 ();
            }

        }, year, month, day );
        datePickerDialog.show ();
    }

Я пытался как выше, но я не получил точный вывод. Я использовал объект календаря и установил значение, но я не собираюсь добавлять дни к значению выбора.

Ответы [ 2 ]

2 голосов
/ 20 июня 2019

Сначала добавьте 21 день в свой календарь, затем выберите и установите год, месяц и день на DatePickerDialog следующим образом:

final Calendar calender = Calendar.getInstance ();
 calender.add(Calendar.DAY_OF_MONTH,21);
 final int year = calender.get ( Calendar.YEAR );
 final int month = calender.get ( Calendar.MONTH );
 final int day = calender.get ( Calendar.DAY_OF_MONTH);

Это покажет 21-ю дату, выбранную в DatePickerDialog с сегодняшнего дня (например, для 20-го июня 2019 г. будет выбрано 11-е июля 2019 г.)

ОБНОВЛЕНО (чтобы добавить 21 день после выбора даты из DatePickerDialog):

        @Override
        public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {

            SimpleDateFormat sdf = new SimpleDateFormat("dd/mm/yyyy");
            final Calendar calender = Calendar.getInstance();
            calender.set(Calendar.YEAR,year);
            calender.set(Calendar.MONTH,month);
            calender.set(Calendar.DAY_OF_MONTH,dayOfMonth);
            calender.add(Calendar.DAY_OF_MONTH,21);
            Date s = calender.getTime();
            Log.e(TAG, "vale" + sdf.format(s));
            // read1 ();
        }
0 голосов
/ 20 июня 2019

Вы должны сделать, как показано ниже

public void Pickdateheatdryopen(View view) {

        final Calendar calender = Calendar.getInstance ();
        calender.add(Calendar.DATE,21);

        final int year = calender.get ( Calendar.YEAR );
        final int month = calender.get ( Calendar.MONTH );
        final int day = calender.get ( Calendar.DAY_OF_MONTH );



        datePickerDialog = new DatePickerDialog ( CowActivity.this, new DatePickerDialog.OnDateSetListener () {
            @Override
            public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {

                inputheatdry.setText ( (dayOfMonth) + "/" + (month+1 ) + "/" + (year) );
               // read1 ();
            }

        }, year, month, day );
        datePickerDialog.show ();
    }

Прежде чем получить объект day из calendar, необходимо добавить дни в calendar.

Примечание: Будет добавлено количество дней с текущей даты.

Обновление

public void Pickdateheatdryopen(View view) {

            String oldDate = "2017-01-29";  
            System.out.println("Date before Addition: "+oldDate);
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            Calendar calender = Calendar.getInstance();
            try{
                calender.setTime(sdf.parse(oldDate));
             }catch(ParseException e){
                 e.printStackTrace();
             }

            calender.add(Calendar.DATE,21);

            final int year = calender.get ( Calendar.YEAR );
            final int month = calender.get ( Calendar.MONTH );
            final int day = calender.get ( Calendar.DAY_OF_MONTH );



            datePickerDialog = new DatePickerDialog ( CowActivity.this, new DatePickerDialog.OnDateSetListener () {
                @Override
                public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {

                    inputheatdry.setText ( (dayOfMonth) + "/" + (month+1 ) + "/" + (year) );
                   // read1 ();
                }

            }, year, month, day );
            datePickerDialog.show ();
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...