public static List<GregorianCalendar> identifyFeiertage(int year)
    {
        final List<GregorianCalendar> holidays = new ArrayList<GregorianCalendar>();
        // Ostern vorab berechnen
        final GregorianCalendar ostersonntag = MoreDate.osterdatum(year);
        GregorianCalendar tmp;
        //CHECKSTYLE:OFF Konstanten sind hier m.E. nicht sinnvoll
        // Neujahr
        holidays.add(new GregorianCalendar(year, Calendar.JANUARY, 1));
        // Heilige drei K�nige
        holidays.add(new GregorianCalendar(year, Calendar.JANUARY, 6));
        // Karfreitag
        tmp = (GregorianCalendar) ostersonntag.clone();
        tmp.add(Calendar.DAY_OF_MONTH, -2);
        holidays.add(tmp);
        // Ostermontag
        tmp = (GregorianCalendar) ostersonntag.clone();
        tmp.add(Calendar.DAY_OF_MONTH, +1);
        holidays.add(tmp);
        // Tag der Arbeit
        holidays.add(new GregorianCalendar(year, Calendar.MAY, 1));
        // Christi Himmelfahrt
        tmp = (GregorianCalendar) ostersonntag.clone();
        tmp.add(Calendar.DAY_OF_MONTH, +39);
        holidays.add(tmp);
        // Pfingstmontag
        tmp = (GregorianCalendar) ostersonntag.clone();
        tmp.add(Calendar.DAY_OF_MONTH, +50);
        holidays.add(tmp);
        // Fronleichnam
        tmp = (GregorianCalendar) ostersonntag.clone();
        tmp.add(Calendar.DAY_OF_MONTH, +60);
        holidays.add(tmp);
        // Mari� Himmelfahrt
        holidays.add(new GregorianCalendar(year, Calendar.AUGUST, 15));
        // Tag der Deutschen Einheit
        holidays.add(new GregorianCalendar(year, Calendar.OCTOBER, 3));
        // Reformationstag
        holidays.add(new GregorianCalendar(year, Calendar.OCTOBER, 31));
        // Allerheiligen
        holidays.add(new GregorianCalendar(year, Calendar.NOVEMBER, 1));
        // Bu�- und Bettag
        tmp = new GregorianCalendar(year, Calendar.NOVEMBER, 23);
        final int day = tmp.get(Calendar.DAY_OF_WEEK);
        int diff = 0;
        switch (day)
        {
            case Calendar.THURSDAY:
                diff = -1;
            break;
            case Calendar.FRIDAY:
                diff = -2;
            break;
            case Calendar.SATURDAY:
                diff = -3;
            break;
            case Calendar.SUNDAY:
                diff = -4;
            break;
            case Calendar.MONDAY:
                diff = -5;
            break;
            case Calendar.TUESDAY:
                diff = -6;
            break;
            case Calendar.WEDNESDAY:
                diff = -7;
            break;
            default:
            break;
        }
        tmp.add(Calendar.DAY_OF_MONTH, diff);
        holidays.add(tmp);
        // 1. Weihnachtstag
        holidays.add(new GregorianCalendar(year, Calendar.DECEMBER, 25));
        // 2. Weihnachtstag
        holidays.add(new GregorianCalendar(year, Calendar.DECEMBER, 26));
        return holidays;
        //CHECKSTYLE:ON
    }