2 votes

Conversion de String month en integer java

Comment convertir une chaîne de mois en nombre entier ?

En cliquant sur la méthode, je veux afficher la date qui est sélectionnée, mais si la date a un événement, il devrait afficher quelque chose de plus sur l'événement. La méthode de vérification de l'événement de vacances nécessite des valeurs entières.

Voici le code :

MISE À JOUR :

@Override
public void onClick(View view)
    {
        int m = 0;
        int d, y;
        String date_month_year = (String) view.getTag();
        selectedDayMonthYearButton.setText("Selected: " + date_month_year);

        String [] dateAr = date_month_year.split("-");
        Log.d(tag, "Date Split: " + dateAr[0] + " " + dateAr[1] + " " + dateAr[2]);
        y = Integer.parseInt(dateAr[2]);

        try {
            Calendar c1 = Calendar.getInstance();
            c1.setTime(new SimpleDateFormat("MMM").parse(dateAr[1]));
            m = c1.get((Calendar.MONTH) + 1);
        } 
        catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        //int m = Integer.parseInt(dateAr[1]);
        d = Integer.parseInt(dateAr[0]);
        Log.d(tag, "Date forward: " + d + " " + m + " " + y);

        if (isHoliday(d, m, y))
        {
            Intent i = new Intent(view.getContext(), HijriEvents.class);
            i.putExtra("date_string", date_month_year);
            startActivity(i);

        }

        try
            {
                Date parsedDate = dateFormatter.parse(date_month_year);
                Log.d(tag, "Parsed Date: " + parsedDate.toString());

            }
        catch (ParseException e)
            {
                e.printStackTrace();
            }
    }

    public Boolean isHoliday(int d, int m, int y)
    {
        HijriCalendar hijri = new HijriCalendar(y, m, d);
        if (!hijri.checkIfHoliday().contentEquals(""))
            return true;
        return false;
    }

13voto

Jigar Joshi Points 116533
Calendar cal = Calendar.getInstance();
cal.setTime(new SimpleDateFormat("MMM").parse("July"));
int monthInt = cal.get(Calendar.MONTH) + 1;

Ver

1voto

Jin Points 3964

Il n'y a que 12 mois, donc il suffit de normaliser la chaîne et de la comparer. Je n'essaierais pas de sur-optimiser.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X