private static String findClosest(String[] names, String name) {
        for (int i= 0; i < names.length; i++)
            if (names[i].equals(name))
                return name;
            
        Pattern pattern= Pattern.compile("200[3-9][01][0-9][0-3][0-9]"); //$NON-NLS-1$
        Matcher matcher= pattern.matcher(name);
        
        if (!matcher.find())
            return name;
            
        int x= Integer.parseInt(name.substring(matcher.start(), matcher.end()));
        int ix= -1;
        int mind= 0;
            
        for (int i= 0; i < names.length; i++) {
            matcher.reset(names[i]);
            if (matcher.find()) {
                int y= Integer.parseInt(names[i].substring(matcher.start(), matcher.end()));
                int d= Math.abs(y-x);
                if (ix < 0 || d < mind) {
                    mind= d;
                    ix= i;
                }
            }
         }
        
        if (ix >= 0)
            return names[ix];
        return name;
    }