EventQuery Календаря Google не получает правильные записи - PullRequest
1 голос
/ 12 марта 2011

Я пытаюсь получить выходных дней в Южной Африке, используя Google Calendar API. .

У меня есть следующие проблемы:

  1. Некоторые из найденных данных находятся за пределами указанного диапазона EventQuery.(Как до, так и после заданного диапазона дат)
  2. Некоторые записи календаря отсутствуют.Одним из них является Рождество 2011-12-25

Я проверил правильность дат этого конкретного общедоступного календаря, просмотрев его онлайн .

Мое лучшее предположениеявляется то, что я использую API неправильно, и что я запрашиваю что-то вроде даты создания / обновления записи календаря вместо даты события.

Код:

var feedUrl = "http://www.google.com/calendar/feeds/en.sa%23holiday%40group.v.calendar.google.com/public/full";
var service = new CalendarService("My application name");

var qry       = new EventQuery(feedUrl);
qry.StartDate = new DateTime(2011, 1, 1);
qry.EndDate   = new DateTime(2012, 1, 1);

EventFeed results = service.Query(qry);

foreach (EventEntry entry in results.Entries)
{
    if (entry.Times.Count == 0)  
       continue;

    // Using entry.Times[0].StartTime results in 
    // missing data and data outside of the given search criteria.
}

Я использую последнюю доступную API данных Google .NET 1.7.0.1

Что я делаю не так?

1 Ответ

5 голосов
/ 12 марта 2011

Найдена проблема:

qry.StartDate = new DateTime(2011, 1, 1);
qry.EndDate   = new DateTime(2012, 1, 1);

должно быть:

qry.StartTime = new DateTime(2011, 1, 1);
qry.EndTime   = new DateTime(2012, 1, 1);

Это решает обе мои проблемы, упомянутые в моем вопросе.(Не уверен, почему класс EventQuery имеет оба свойства Date / Time, это сбивает с толку, когда работает только один набор).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...