2010-10-18 4 views
0

J'essaie de sélectionner des événements pour les deux prochaines semaines à compter de la date d'aujourd'hui. La logique utilisée est assez facile. Je reçois tous les calendriers, puis en sélectionne un dont j'ai besoin pour extraire les événements et fournir la plage de dates. Je tire des dates du calendrier sélectionné mais il ne semble pas que la plage de dates soit appliquée. Maintenant, j'ai 2 événements prévus pour les dates suivantes.L'API Google Calendar renvoie les événements en dehors de la plage de dates

  • 8 Octobre
  • Octobre 20

Je ne devrais recevoir l'événement prévu pour le 20 Octobre, mais je reçois à la fois.

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

Est-ce que quelqu'un peut déceler quelque chose de mal?

EDIT: Il s'avère que StartTime/EndTime fonctionne correctement. Je ne comprends pas vraiment la différence et je n'arrive pas à trouver quoi que ce soit dans les docs.

Répondre

0

Je devais juste utiliser StartTime/EndTime à la place. Je ne sais toujours pas quand utiliser StartDate et EndDate à la place, mais cela a résolu mon problème.

Questions connexes