我已经粘贴了下面的代码。为了解释代码的目的是封锁一个会议室,使其不能被保留使用,它是一个小的“会议室”,将被封锁,只能提前一周预订。
无论如何,这是我在下面的代码中遇到的问题。如果我从 1 月 1 日开始运行代码。代码将运行,然后在 3 月的中途停止创建事件,如果这恰好发生在月初,那将不是问题,因为我可以从那时开始轻松再次,或假设月份拼写错误。但它会在 3 月 18 日之前产生保留。此外,当我重新启动它并将其设置为从 4 月初开始创建阻止预订时,它一直持续到 12 月 8 日。
我的第一个猜测是我需要重新格式化代码以处理没有 31 天的月份,但我认为那些不存在的日子只会抛出一个错误,并且 lop 会继续,它确实度过了短暂的 2 月.
只是想也许对 Google Scripting 有更多经验的人可能有一个想法或看到我正在做的事情的缺陷。谢谢你的帮助
function blockReservations(){
var roomcalendar = CalendarApp.getCalendarById('company.com_12458546525839392d898932@resource.calendar.google.com');
//for(var z=2014;z<=2020;z++){
//var year = z;
var year = '2014'; //This Line May be used in place of the above for loop to specify a specific year
for(var x=4;x<=12;x++)
{
if(x==1) var month = 'January';
else if(x==2) var month = 'February';
else if(x==3) var month = 'March';
else if(x==4) var month = 'April';
else if(x==5) var month = 'May';
else if(x==6) var month = 'June';
else if(x==7) var month = 'July';
else if(x==8) var month = 'August';
else if(x==9) var month = 'September';
else if(x==10) var month = 'October';
else if(x==11) var month = 'November';
else if(x==12) var month = 'December';
else month = 'null';
//var month = 'July'; //This Line May be used in place of the above for loop to specify a specific year
for(var y=1;y<=31;y++)
{
var date = y;
var startDateString = month + ' ' + date + ', ' + year +' 00:00:00';
var endDateString = month + ' ' + date + ', ' + year +' 24:00:00';
var event = roomcalendar.createEvent('Time Blocked', new Date(startDateString), new Date(endDateString));
}
}
// }
}