2016-10-19 8 views
0

JavaScriptがわからないのですが(少しJavaが分かります)、私の学校のクラスのイベントを削除する簡単なスクリプトを書く休暇のイベントですが、それは単に動作しません...問題は何ですか?あなたのようにそれらを比較する場合は働くことができる日school_class.getStartTime()と日付vacation.getAllDayStartDate()を比較Google Apps Script(カレンダー) - 2つのイベントが同じ日に行われている場合の比較

function vacations()             
{              
    var school_calendar = CalendarApp.getCalendarsByName("Timetable")[0].getEvents(new Date("September 1, 2016"),new Date("June 20, 2017")); 
    var vacations = CalendarApp.getCalendarsByName("Vacations")[0].getEvents(new Date("September 1, 2016"),new Date("June 20, 2017")); 
    for (var i = 0; i < vacations.length; i++) 
    { 
    var vacation = vacations[i]; 
    for (var j = 0; j < school_calendar.length; j++) 
    { 
     var school_class = school_calendar[j]; 
     if(vacation.getAllDayStartDate() == school_class.getStartTime()) 
     { 
     school_class.deleteEvent(); 
     } 
    } 
    } 
} 

答えて

1

getAllDayStartDate:しかし

vacation.getAllDayStartDate().getTime() === school_class.getStartTime().getTime() 

は、一つは深夜に設定された時間と日付が含まれています()

この終日のカレンダーイベントが開始される日付を取得します。戻り値 は、イベントがスクリプトのタイムゾーンで開始する の開始日の午前0時を表します(この値は、終日のイベントではなく、 で終日イベントではありません)。代わりに カレンダーのタイムゾーンを使用するには、getStartTime()を呼び出します。

そして、他の日付と時刻が含まれています

またgetStartTime()

は、このカレンダーのイベントが始まる日時を取得します。 の非終日イベントの場合、これは イベントが開始するように定義された瞬間になります。 開始日(日付と時刻ではない)のみを格納する終日イベントの場合は、 ゾーンでイベントが開始される日の始まりの の深夜です。これにより、イベントのすべてのタイプの開始時刻の意味のある比較が可能になります。 ただし、必ずしも元の の年月日は変更されません。

終日のイベントでは、getAllDayStartDate()は、常にこのメソッドよりも優先して呼び出される である必要があります。

正しいフォーマットを比較し、デバッガまたはロガーを使用してコード内の内容を確認してください。

関連する問題