【GAS】getAllDayStartDateメソッドを完全マスター

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る
icon_for_CalendarApp_ getAllDayStartDate

終日予定の開始日を取得— getAllDayStartDate()

今回のメソッドは、プログラムを使って終日のカレンダーイベント(予定)の開始日を取得するメソッドを紹介します。

終日予定の開始日を取得するメソッドになります。終日予定ではない予定に対してこちらのメソッドを使用するとエラーとなります。

終日予定であれば予定開始日の午前0時が取得されます。

こちらのメソッドに似たメソッドにgetStartTime()というメソッドがあります。2つのメソッドの違いはタイムゾーンの違いになります。

getAllDayStartDateはスクリプトに設定されたタイムゾーンを基準に日付の取得が行われます。一方、getStartTimeはカレンダーに設定されたタイムゾーンを基準に日付の取得が行われます。どちらも同じタイムゾーンを設定していれば結果は同じになりますが、設定が違う場合は結果に違いが出る可能性がありますのでこの点に注意してください。

使い方はどちらも同じになりますので、こちらのページに2つのサンプルコードを記載します。ただし、getStartTimeは終日予定でなくても使用することができます。

    1. getAllDayStartDate()
    2. getStartTime()

『 引数に入れる値 』

今回のメソッドに関しては引数は必要ありません。

getAllDayStartDate()

サンプルコード1
//終日予定の開始日の0時を取得するコード(スクリプトのタイムゾーン基準)
function sampleCode1() {
  var calendar = CalendarApp.getDefaultCalendar();
  var date = new Date(); 
  var events = calendar.getEventsForDay(date);
  for (var i in events) {
    var event = events[i];
    /*イベントIDで指定するときには下記のコード
      var eventId = events[i].getId();
      var event = calendar.getEventById(eventId);
    */
    if (event.isAllDayEvent()) {
      var startDate = event.getAllDayStartDate();
      Logger.log(startDate);
    }
  }
}

『 変数の説明 』

calendar = デフォルトカレンダーを取得
date = プログラム実行日を代入
events = プログラム実行日に作成済みのイベントを取得
startDate = 終日予定の開始日を代入

スクリプトができたら▶ボタンでプログラムを実行してみましょう。プログラムが終了すれば実行した日にデフォルトカレンダーに作成済みの終日予定があればその予定の開始日を取得してログに表示します。

次のコードは終日予定以外の予定についても開始時刻を取得できます。終日予定の場合は先述した通り、カレンダーに設定したタイムゾーンを基準に日時が取得されます。スクリプトのタイムゾーンとカレンダーのタイムゾーンが別に設定されている場合は注意が必要です。

getStartTime()

サンプルコード2
//終日予定の開始時刻を取得するコード(カレンダーのタイムゾーン基準)
function sampleCode2() {
  var calendar = CalendarApp.getDefaultCalendar();
  var date = new Date(); 
  var events = calendar.getEventsForDay(date);
  for (var i in events) {
    var event = events[i];
    /*イベントIDで指定するときには下記のコード
      var eventId = events[i].getId();
      var event = calendar.getEventById(eventId);
    */
    var start = event.getStartTime();
    Logger.log(startDate);
  }
}

まとめ

今回はプログラム的に終日予定の開始日を取得するメソッドを紹介しました。getAllDayEndDateメソッドと同じように工程管理のシステムなどで使えそうな気がしますね。ぜひ使い方を覚えておきましょう

SNSでもご購読できます。

コメントを残す

*