//      
private class BirthdayFilter implements RecordFilter {
    //   
    public boolean matches(byte[] candidate) {
        //     
        ByteArrayInputStream bais = new ByteArrayInputStream(candidate);
        //  ,    
        DataInputStream dis = new DataInputStream(bais);
        //  
        Date birthDate = new Date();
        try {
            //    
            dis.readUTF();
            dis.readUTF();
            dis.readUTF();
            //   
            birthDate.setTime(dis.readLong());
        }
        catch (IOException ioe) { return false; }
        
        //      
        Calendar rightNow = Calendar.getInstance();
        Calendar birthday = Calendar.getInstance();
        //    
        birthday.setTime(birthDate);
        //        
        if(rightNow.get(Calendar.DAY_OF_MONTH) == birthday.get(Calendar.DAY_OF_MONTH) &&
            rightNow.get(Calendar.MONTH) == birthday.get(Calendar.MONTH))
            return true;
        else
            return false;
    }
}
