viernes, 17 de diciembre de 2010

Arreglo en Java de los nombres de los pasados 12 meses, en formato MMM-AA

Buenas a todos, debajo les dejo un algoritmo que está hecho en base a uno que hizo un compañero de trabajo, devuelve un arreglo de Strings de los pasados 12 meses respecto del actual (el cual no está incluido) en formato MMM-AA.

[Nov-10,Oct-10...]

Me pareció interesante el manejo del offset ya que para la correspondencia de los meses con sus respectivos nombres, los índices deben estar dentro de los límites del arreglo a fin de que el código funcione bien y evitar un java.lang.ArrayIndexOutOfBoundsException.
Sin más preámbulos acá esta el código java:
/**
     *This method returns an array with the names of the past 12 months prior to
     *the current month, MMM-YY format.
     *@author nachojava
     */
    public String[] headers() {
        String[] months = { "Jan", "Feb", "Mar", "Apr", "May", "Jun",
                "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" };
        String[] headers = { "", "", "", "", "", "", "", "", "", "", "", "" };
        int yearOffset = 2000;
        Calendar c = Calendar.getInstance();
        int year = c.get(Calendar.YEAR) - yearOffset;
        int previousMonths = c.get(Calendar.MONTH) - 1;
        int monthOffset = 12;

        for (int index = 0; index <= 11; index++) {
            if (year < 10) {               
                headers[index] = months[previousMonths] + "-" + "0" + year;
            } else {               
                headers[index] = months[previousMonths] + "-" + year;
            }
            previousMonths--;

            if (previousMonths < 0) {
                previousMonths = previousMonths + monthOffset;
                year -= 1;
            }
        }
        return headers;
    }

Espero les haya interesado, saludos!
Nacho.-

No hay comentarios: