如何在 Google Apps 脚本中添加一天的活动开始日期

How can I add one day the start date of an event in Google Apps Script

我有一个 google 应用程序脚本,用于获取非全天日历事件的开始和结束时间。活动从 8:00 到 16 日的 9:00,我有一个脚本可以将其复制到 17 日,然后是 18 日,依此类推。我知道你可能在想我应该让事件每天重复,但我使用的是一个忽略重复事件的程序。

这是我目前的情况:

function myFunction() {
var cal = CalendarApp.getCalendarById('1234@calendar.google.com')
var spanish = cal.getEventById('12345')

var title = spanish.getTitle()
var desc = spanish.getDescription()
var start = spanish.getStartTime()
var end = spanish.getEndTime()
cal.createEvent(title, START TIME + 1 DAY, END TIME + 1 DAY)
}

如有任何建议,我们将不胜感激

尝试:

var newStart=new Date(start.getFullYear(),start.getMonth(),start.getDate()+1);

如果需要时间,您可以添加更多条款。

JavaScript Date()

添加一天的最可靠方法是使用毫秒。在大多数情况下,将日期加 1 是可行的,但如果事件发生在一年的最后一天,并且您想将事件移动一天,那么年份和月份都会不同。因此,获取年份和月份并重新使用它在这种情况下是行不通的。

此外,如果原始事件发生在该月的最后一天,则添加一天会将更改后的事件放入新的月份,因此将最后一个事件的月份重新用作日期将不起作用在那种情况下。

function testMoveDateByOneDay() {
  var endDate,foundEvent, startDate;

  var cal = CalendarApp.getDefaultCalendar();

  startDate = new Date();
  endDate = new Date();
  endDate = endDate.setDate(endDate.getDate() + 1);

  var event = cal.createAllDayEvent('Test Event', startDate, endDate)

  var eventID = event.getId();

  var foundEvent = cal.getEventById(eventID);

  var title = foundEvent.getTitle()
  var desc = foundEvent.getDescription()

  var start = foundEvent.getStartTime();
  var end = foundEvent.getEndTime();

  //Logger.log(typeof start)

  var startInMS = start.getTime() + 86400000;//Add one day in milliseconds
  var endInMS = end.getTime() + 86400000;

  start = new Date(startInMS);
  end = new Date(endInMS);

  //Logger.log(typeof start)

  event.setTime(start, end);//Change the day of  of this event
}