今年の日本の祝日をログに出すコードの例です
祝日のデータはGoogleカレンダーの「日本の祝日」から取得しています
事前準備
Googleカレンダーで日本の祝日を表示しておく
事前準備後に以下のコード.gsのget_public_holidays()を実行すると
その年の日本の祝日がログに出ます
※どこまで取得できるか試してみると前後1年分の祝日も取得できるようです
日本の祝日のカレンダーID
- ja.japanese#holiday@group.v.calendar.google.com
- get_calender_id(name) で取得しています
コード.gs
function get_public_holidays() {
var name = "日本の祝日";
var start = get_start_end()[0];
var end = get_start_end()[1];
var id = get_calender_id(name);
var public_holidays = get_schedules(id, start, end);
Logger.log(public_holidays);
}
function get_start_end() {
var year = new Date().getYear();
var start = year + "/01/01";
var end = year + "/12/31";
var start_end = [start, end];
return start_end;
}
function get_calender_id(name) {
var calender = CalendarApp.getCalendarsByName(name);
var id = calender[0].getId();
return id;
}
function get_schedules(id, start, end) {
var calender = CalendarApp.getCalendarById(id);
var start_date = new Date(start);
var end_date = new Date(end);
var schedules = calender.getEvents(start_date, end_date);
var array = [];
for (var i = 0; i < schedules.length; i++) {
var date = schedules[i].getAllDayStartDate();
date = get_date(date);
var title = schedules[i].getTitle();
array.push([date, title]);
}
return array;
}
function get_date(date) {
var result = Utilities.formatDate(new Date(date), 'Asia/Tokyo', 'yyyy/MM/dd');
return result;
}
|
意訳この機能がやること カレンダーの名前 いつから いつまで カレンダーの名前からIDを取得して 指定した期間内の予定を取得して ログに出す この機能がやること 現在の日時を取得してその西暦を取得して その年の01/01 その年の12/31 を配列に入れて 返す この機能がやること 渡されたカレンダー名からカレンダーを取得して そのIDを取得して 返す この機能がやること 渡されたidからカレンダーを取得して 渡されたstartの日付をnew Dateに渡して 渡されたendの日付をnew Dateに渡して カレンダーの予定を取得して 予定の数だけ以下を繰り返す 結果を入れる配列を用意して 一つずつ日付を取得して 'yyyy/MM/dd'の形にフォーマットして タイトルを取得して arrayに追加する すべて追加したarrayを返す この機能がやること 渡されたdateを'yyyy/MM/dd'の形にして 返す |
実行結果
