亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 Google 日歷中的事件重復中使用多個例外

如何在 Google 日歷中的事件重復中使用多個例外

開心每一天1111 2023-09-21 16:57:54
這是我的問題:基于其中輸入了培訓課程預訂的電子表格,我正在構建一個 Apps 腳本以將每個預訂放入日歷中。每個預訂都包含從開始到結束的時間段,從而導致每周都有一次培訓課程的重復活動。到目前為止一切順利,主要是因為我在 SO 找到了有價值的幫助和代碼示例。我現在可以根據電子表格添加、更改和刪除日歷事件。當這一切發生時,我在 Google Apps 腳本編程方面達到了一個新水平:-)但我一直在努力解決的一件事是如何向每個具有例外的預訂添加多個例外。表中的字段之一包含應從預訂期限中排除的日期,格式為:“DD-MM-YYYY,DD-MM-YYYY”。我可以將它們轉換為日期數組(例外):[Sat Dec 05 00:00:00 GMT+01:00 2020, Sat Dec 26 00:00:00 GMT+01:00 2020]當我想構建重復部分時,我已經失去了動力。我能夠找到使用一種排除的示例,但我需要能夠為一個事件構建多個排除。我嘗試過使用數組,但這對我不起作用。這就是我所擁有的: for (var k=0;k < exceptions.length ;++k) {             // doorloop het hele array     var recurrence = CalendarApp.newRecurrence().addWeeklyRule()                      .addWeeklyExclusion(exceptions[k])                      .until(new Date(CEUntil));  }這是我收到的錯誤:“異常:參數((類))與 CalendarApp.RecurrenceRule.addWeeklyExclusion 的方法簽名不匹配。 ”我究竟做錯了什么?
查看完整描述

2 回答

?
交互式愛情

TA貢獻1712條經驗 獲得超3個贊

您需要注意傳遞給函數的值。它們被列為“參數”,并在下面鏈接的方法的文檔中清楚地描述。

  1. addWeeklyExclusion()不接受任何值,但您試圖向其傳遞一個日期。

  2. setRecurrence(recurrence, startTime, endTime)需要一個EventRecurrence對象,但您要向它傳遞一個數組。

每個事件系列都有一個recurrence,并且recurrence可能有多個例外。無需創建重復數組。

function createRecurringEvent() {

? const Tstart = new Date('December 5, 2020 04:00:00 PM EST');

? const Tstop = new Date('December 5, 2020 05:00:00 PM EST');

? const CEUntil = new Date('January 10, 2021');

??

? const recurrence = CalendarApp.newRecurrence()

? const rule = recurrence.addWeeklyRule().until(CEUntil);

??

? const exceptions = [ 'December 5, 2020', 'December 26, 2020' ];

? exceptions.forEach(function(exception) {

? ? rule.addDateExclusion(new Date(exception));

? });

??

? CalendarApp.getDefaultCalendar().createEventSeries(

? ? 'Recurring Event',

? ? Tstart,

? ? Tstop,

? ? recurrence

? );

}


查看完整回答
反對 回復 2023-09-21
?
肥皂起泡泡

TA貢獻1829條經驗 獲得超6個贊

在迭戈的大力幫助下,我的代碼得以運行。


這是更新事件的相關代碼片段,將異常排除在一系列事件之外:


var exceptions = record[26].split(',');

var event = calIndoorHall.getEventSeriesById(CEId);

var recurrence = CalendarApp.newRecurrence();

var rule = recurrence.addWeeklyRule().until(CEUntil);

exceptions.forEach(function(exception) {

  rule.addDateExclusion(new Date(exception.toString()));

});

event.setRecurrence(recurrence, Tstart, Tstop);

看著這段代碼的美麗簡潔,我希望自己在 JS/GAS 方面能更流利一些。我想,這是(更多)練習的問題。



查看完整回答
反對 回復 2023-09-21
  • 2 回答
  • 0 關注
  • 163 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號