public boolean isHoliday(Date date)
    {
        int offset = 0;
        switch (m_policy)
        {
        case CLOSEST:
            offset = figureMonday(date,1);
            int previous = figureMonday(date,1);
            if (previous < offset)
                offset = -previous;
            break;
        case FOLLOWING:
            offset = figureMonday(date,1);
            break;
        case PREVIOUS:
            offset = figureMonday(date,-1);
            break;
        }
        
        Calendar param = new GregorianCalendar();
        param.setTime(date);
        Calendar calendar = new GregorianCalendar();
        calendar.set(Calendar.YEAR, param.get(Calendar.YEAR));
        calendar.set(Calendar.MONTH, m_month);
        calendar.set(Calendar.DAY_OF_MONTH, m_day);
        calendar.add(Calendar.DAY_OF_YEAR, offset);
        if (param.get(Calendar.DAY_OF_YEAR)==calendar.get(Calendar.DAY_OF_YEAR))
        {
            return true;
        }
        return false;
    }