GoogleCalendarAPI + LinqToXMLで休日を取得する方法

があまりにも簡単すぎて思わず吹き出した。

LinqToXMLでGoogleCalendarAPIにアクセスし、
2007年1月1日から2008年1月1日までの休日をピックアップしてみる。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Xml.Linq;
using System.Text;

namespace Sample
{
    class Program
    {
        static void Main(string[] args)
        {
            string URL  =   
"http://www.google.com/calendar/feeds/japanese@holiday.calendar.google.com/public/full?start-min=2007-01-01&start-max=2008-01-01";
            string ATOM =   "{http://www.w3.org/2005/Atom}";
            string GOOGLE   =   "{http://schemas.google.com/g/2005}";

            XDocument doc    =   XDocument.Load(URL);

            var query    =   from entry in doc.Root.Elements(ATOM + "entry")
                            from when in entry.Elements(GOOGLE + "when")
                            orderby when.Attribute("startTime").Value
                            select new { 
                                Title=entry.Element(ATOM + "title").Value, 
                                Date=when.Attribute("startTime").Value 
                            };

            foreach (var item in query) { Console.WriteLine("{0}は{1}", item.Date, item.Title); }

            Console.Read();
        }
    }
}

実行結果はこんな感じ。

2007-01-01は元日
2007-01-08は成人の日
2007-02-11は建国記念の日
2007-02-12は振替休日
2007-03-21は春分の日
2007-04-29はみどりの日
2007-04-30は振替休日
2007-05-03憲法記念日
2007-05-04は国民の休日
2007-05-05はこどもの日
2007-07-16は海の日
2007-09-17は敬老の日
2007-09-23は秋分の日
2007-09-24は振替休日
2007-10-08は体育の日
2007-11-03は文化の日
2007-11-23は勤労感謝の日
2007-12-23は天皇誕生日
2007-12-24は振替休日

かつてRSSフィードを取得するRSS.NETとかあったけど、
LinqToXMLがあれば
XMLで公開されているWeb上のリソースを取得するためのライブラリなんて
もういらなくね?

楽すぎる〜(^0_0^)