2016-10-19 98 views
0

我不知道JavaScript(我知道一點Java),但我想寫一個簡單的腳本來刪除我的學校課程活動,當有度假活動,但它根本不起作用......問題是什麼?Google Apps腳本(日曆) - 比較兩個事件是否在同一天

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

一個日期vacation.getAllDayStartDate()有日期school_class.getStartTime()比較,如果你喜歡比較他們可以工作:

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

但是,一個包含設置在午夜時間日期:

getAllDayStartDate ()

獲取此全天日曆事件開始的日期。 (如果這是 不是全天事件,則此方法將拋出異常。) 返回日期將代表 的一天的開始午夜,該事件將在腳本的時區開始。要改用日曆的時區,請調用getStartTime()。

,另一個包含日期和時間:

getStartTime()

獲取日期及該日曆事件開始的時間。對於非全天事件 ,這將是定義啓動事件的時間點。對於僅存儲 開始日期(不是日期和時間)的全天事件,這將在日曆時間 區域的事件開始的當天的開始的 午夜爲午夜。這允許有意義地比較所有類型的事件的開始時間;但是,它不一定會保留原始的 未經修改的日期。

對於全天事件,getAllDayStartDate()幾乎總是被調用 ,優先於此方法。

確保您比較了正確的格式,並使用調試器或記錄器查看代碼中進入的內容。

相關問題