Pergunta

Eu estou tentando obter as entradas de calendário para um determinado dia. O código funciona sem erros no entanto eu estou recebendo uma entrada de data do calendário errado. Estou certo de que a fórmula está correta, mas neverthless gostaria de receber qualquer ajuda sobre isso. Aqui está o código.

        long startTime;
        long endTime;
        String searchFormula;
        DocumentCollection dc_CalendarEntries;

        System.out.println("Getting default TimeZone");
        TimeZone calTZ = TimeZone.getDefault();
        GregorianCalendar startDay = new GregorianCalendar(calTZ);
        startDay.set(startDay.get(1), startDay.get(2), startDay.get(5), 0, 0, 0);
        startTime = startDay.getTime().getTime();
        GregorianCalendar endDay = new GregorianCalendar(calTZ);
        endDay.setTime(startDay.getTime());
        endDay.add(5, 1);
        endTime = endDay.getTime().getTime();
        System.out.println("Creating Search Formula");

        StringBuffer searchFormulaStringBuffer = new StringBuffer("@IsAvailable(CalendarDateTime)");
        searchFormulaStringBuffer.append(" & StartDateTime >= @Date(").append(startDay.get(1)).append("; ").append(startDay.get(2) + 1).append("; ").append(startDay.get(5)).append("; ").append(startDay.get(10)).append("; ").append(startDay.get(12)).append("; ").append(startDay.get(13)).append(")");
        searchFormulaStringBuffer.append(" & EndDateTime <= @Date(").append(endDay.get(1)).append("; ").append(endDay.get(2) + 1).append("; ").append(endDay.get(5)).append("; ").append(endDay.get(10)).append("; ").append(endDay.get(12)).append("; ").append(endDay.get(13)).append(")");
        searchFormulaStringBuffer.append(" & (AppointmentType = \"3\" | AppointmentType = \"0\")");
        searchFormula = searchFormulaStringBuffer.toString();           
        System.out.println(searchFormula);
        dc_CalendarEntries = db_Mail.search(searchFormula); 

Isto é o que é a fórmula que é aplicada.

@IsAvailable(CalendarDateTime) & StartDateTime >= @Date(2009; 10; 3; 0; 0; 0) & EndDateTime <= @Date(2009; 10; 4; 0; 0; 0) & (AppointmentType = "3" | AppointmentType = "0")

Eu recebo as seguintes entradas.

Test Project daily checkpoint 2009-09-08
This is a Test Meeting 2009-10-03

A segunda entrada é correta e é bom, mas por alguma estranha razão a primeira entrada continua aparecendo independentemente da data i dar. Não tenho a certeza se o seu problema de codificação de um ou algum problema de configuração nas minhas notas.

Foi útil?

Solução

Você precisa ter cuidado de repetir entradas de calendário, uma vez que estes terão começar e terminar data e hora valores de campo que mapeiam para a primeira entrada da série.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top