1
votes

Comment obtenir la première et la dernière date du mois dans Android Datepicker

J'essaie d'amener l'utilisateur à sélectionner deux dates, la date de début et la date de fin, indépendamment de ce que l'utilisateur sélectionne, je veux m'assurer que la date de début commence à la première date du mois et que la date de fin se termine par le dernière date du mois, soit 31 ou 30.

 `enter code here`editTextPvcStartDate.setText(year + "-" + String.format("%02d",(monthOfYear + 1)) + "-" + String.format("%02d",dayOfMonth));


            }
        }, year, month, day);

        mydate.show();


    }

{

void selectStartDateForQtr()//DATEPICKER CONDITION
    {
        editTextPvcStartDate.setError(null);
        selectedDateCondition = "";
        DatePickerDialog mydate;
        final Calendar regDate = Calendar.getInstance();
        //int details = regDate.getTime();
        int day = regDate.get(Calendar.DAY_OF_MONTH);
        int month = regDate.get(Calendar.MONTH);
        int year = regDate.get(Calendar.YEAR);

        // date picker dialog
        mydate = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
            @Override
            public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) 


2 commentaires

dernière date du mois soit 31 ou 30. février?


Faites un sélecteur de mois.


3 Réponses :


0
votes

Dans votre fonction onDateSet, essayez de définir les valeurs dans un objet Calendar, puis utilisez les fonctions de celui-ci pour trouver votre maximum:

date selectedDate = Calendar.getInstance()
selectedDate.set(year, monthOfYear, dayOfMonth)
date startDate = selectedDate
startDate.set(Calendar.DAY_OF_MONTH, 1)
date endDate = selectedDate
int lastDayOfMonth = endDate.getActualMaximum(Calendar.DAY_OF_MONTH)
endDate.set(Calendar.DAY_OF_MONTH, lastDayOfMonth)

Vos variables startDate et endDate contiendront désormais le 1er de le mois et le dernier jour du mois, quelle que soit la taille du mois.


0 commentaires

0
votes

Essayez ce code pour obtenir la première et la dernière date du papillon sélectionné

   //Change with selected date
     int iYear = 2020;
            int iMonth = Calendar.FEBRUARY; 
            int iDay = 1;

            // Create a calendar object and set year and month
            Calendar mycal = new GregorianCalendar(iYear, iMonth, iDay);


            int monthLastDate = mycal.getActualMaximum(Calendar.DAY_OF_MONTH);
            int monthFirstDate = mycal.getActualMinimum(Calendar.DAY_OF_MONTH);

            Log.e("check_days","----"+monthLastDate+"----"+monthFirstDate);


0 commentaires

0
votes

Dans Android, nous pouvons obtenir la dernière date du mois de cette façon. Veuillez vérifier ce code:

LocalDate ld = datePicker.getValue();
Calendar c =  Calendar.getInstance();
c.set(ld.getYear(), ld.getMonthValue() - 1, ld.getDayOfMonth());
Date date = c.getTime();

Sortie:

Today's Date = Fri Nov 29 05:17:02 UTC 2019
Last Date of the current month = 30

Modifié:

Par exemple

Calendar cal = Calendar.getInstance(); 
int res = cal.getActualMaximum(Calendar.DATE);
Log.e(TAG, "Today's Date =", cal.getTime());
Log.e(TAG, "Last Date of the current month = ", res);

In Month commencera de 0 à 11, donc lorsque vous obtenez et ans. de la valeur Datepicker puis le mois décrémente 1 pour définir dans GregorianCalendar.Si vous avez un doute, veuillez demander.

J'espère que cela vous aidera ...!


1 commentaires

cela fonctionne bien mais il n'affiche que la dernièreDate du mois en cours uniquement ... ce dont j'ai besoin est la dernière date du mois sélectionné dans la boîte de dialogue Datepicker