1

特定の日のカレンダーエントリを取得しようとしています。コードはエラーなしで機能しますが、間違ったカレンダーの日付エントリを取得しています。私は式が正しいと確信していますが、それでもこれについての助けをいただければ幸いです。これがコードです。

        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); 

これが適用される式です。

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

次のエントリを取得します。

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

2番目のエントリは正しく、問題ありませんが、奇妙な理由で、最初のエントリは、指定した日付に関係なくポップアップし続けます。コーディングの問題なのか、メモの設定の問題なのかわかりません。

4

1 に答える 1

2

カレンダーエントリの繰り返しには注意する必要があります。これらには、シリーズの最初のエントリにマップされる開始日時フィールド値と終了日時フィールド値が含まれるためです。

于 2009-10-05T00:49:20.750 に答える