API Календаря Google возвращает события за пределами диапазона дат - PullRequest
0 голосов
/ 19 октября 2010

Я пытаюсь выбрать события на следующие 2 недели, начиная с сегодняшней даты. Используемая логика довольно проста. Я получаю все календари, затем выбираю тот, который мне нужен, чтобы получать события и указывать диапазон дат. Я извлекаю даты из выбранного календаря, но это не похоже на диапазон дат. Теперь у меня запланировано 2 мероприятия на следующие даты.

  • 8 октября
  • 20 октября

Мне нужно только назначить мероприятие, запланированное на 20 октября, но я получаю оба.

        CalendarService calService = new CalendarService(calendarAppName);
        calService.setUserCredentials(username, password);

        CalendarQuery calQuery = new CalendarQuery();
        calQuery.Uri = new Uri("https://www.google.com/calendar/feeds/default/owncalendars/full");
        CalendarFeed calFeed = (CalendarFeed)calService.Query(calQuery);

        var activeCalendar = calFeed.Entries.Where(x => x.Title.Text == calendarName).FirstOrDefault();
        if (activeCalendar != null)
        {
           EventQuery evtQuery = new EventQuery(GetCalendarFeed(activeCalendar));
           evtQuery.StartDate = DateTime.Now.AddDays(-1);
           evtQuery.EndDate = DateTime.Now.AddDays(14);
           evtQuery.FutureEvents = false;

           EventFeed evtFeed = calService.Query(evtQuery);
        }

        ...

        private static string GetCalendarFeed(AtomEntry calendarEntry)
        {
           string feedstring = calendarEntry.Id.AbsoluteUri.Substring(63);
           return string.Format("http://www.google.com/calendar/feeds/{0}/private/full", feedstring);
        }

Кто-нибудь может заметить что-то не так?

EDIT: Оказывается, StartTime / EndTime работает правильно. Я действительно не понимаю, в чем разница, и я не могу найти что-нибудь в документации.

1 Ответ

0 голосов
/ 26 ноября 2010

Мне просто нужно было использовать StartTime / EndTime.До сих пор не знаю, когда вместо этого использовать StartDate и EndDate, но это решило мою проблему.

...