最新情報‎ > ‎

東京電力 計画停電 一覧表を公開しました

2011/04/02 6:24 に Masakazu Muraoka が投稿   [ 2011/04/28 19:37 に更新しました ]
東北地方太平洋沖地震の発生に伴い、東京都内で計画停電が実施されています。
その計画停電スケジュールを有志の方々がGoogleカレンダーで公開されています。

https://sites.google.com/a/creco.net/teiden-calendar/

この計画停電スケジュールをGoogle Spreadsheetに書きだすScriptを作成しました。

http://goo.gl/RbDOM

Calendar Serviceを使って、計画停電カレンダーからカレンダーデータを取得しています。
ソースコードは以下のようになっています。

function getCalendars() {
  var calendars = [
    { "name" : "第1グループ",  "address" : "[ 第1グループのカレンダーアドレス ]" },
    { "name" : "第2グループ", "address" : "[ 第2グループのカレンダーアドレス ]" },
    { "name" : "第3グループ", "address" : "[ 第3グループのカレンダーアドレス ]" },
    { "name" : "第4グループ", "address" : "[ 第4グループのカレンダーアドレス ]" },
    { "name" : "第5グループ", "address" : "[ 第5グループのカレンダーアドレス ]" }
  ];
 
  calendars.forEach( function (c) {
    var cal = CalendarApp.openByEmailAddress(c.address);
    var arr = cal.getEvents(new Date(), new Date(2012,1,31)); // month -1
    var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(c.name);
 
    var range = sheet.getRange(5, 1, 50, 6);
    range.clearContent(); // remove previors data.
    for(var i = 0; i < arr.length; i++){
      var startTime = arr[i].getStartTime();
      var endTime = arr[i].getEndTime();
      var startMonth = parseInt(startTime.getMonth())+1;
      var endMonth = parseInt(endTime.getMonth())+1;
      var title = arr[i].getTitle();
      var status = title.match(/^(※.*?)(\s|【)/);
      var group  = title.match(/】(.+?)\s*\//);
      if( status ) {
        if( status.length > 1 ) range.getCell(i + 1,1).setValue(status[1]);
      }
      range.getCell(i + 1,2).setValue(group[1]);
      range.getCell(i + 1,3).setValue( startTime.getYear() + "/" + startMonth + "/" + startTime.getDate() );
      range.getCell(i + 1,4).setValue( startTime.getHours() + ":" + startTime.getMinutes() + ":" + startTime.getSeconds() );
      range.getCell(i + 1,5).setValue( endTime.getYear() + "/" + endMonth + "/" + endTime.getDate() );
      range.getCell(i + 1,6).setValue( endTime.getHours() + ":" + endTime.getMinutes() + ":" + endTime.getSeconds() );
    }
  });
}

ちなみに一覧表の説明に書いてありますが、Google Spreadsheetの公開データはXMLやJSONで取得できます。
これを活用すると、Google Spreadsheetをマッシュアップサービスの一部とすることもできるでしょう。
Comments